使用MMS(MongoDB Monitoring Service)监控MongoDB
一.MongoDB简介:
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
*面向集合存储,易存储对象类型的数据。
*模式*。
*支持动态查询。
*支持完全索引,包含内部对象。
*支持查询。
*支持复制和故障恢复。
*使用高效的二进制数据存储,包括大型对象(如视频等)。
*自动处理碎片,以支持云计算层次的扩展性。
*支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
*文件存储格式为BSON(一种JSON的扩展)。
*可通过网络访问。
二、监控工具
近几年由于大数据的兴起,在实际工作中我们对非关系型和大数据量的处理越来越多,mongoDB由于容易使用,在国内很多项目已经大量使用。它可以安装在windows和linux平台。但是之前由于监控工具的不完善,大家在对数据库的监控上一直没有太好的手段,基本使用cacti、nagos、zabbx或者mongodb之前提供的mongostat,详细用法可以参照如下:
http://www.cnblogs.com/renyb/archive/2013/01/18/2866632.html
但是10gen(MongoDB官方)认识到之前的工具的配置和使用都有很大的局限,2011年发布了官方的监控程序,叫做MMS(MongoDB Monitoring Service),目前此版本已经相当成熟并且图形化界面做得非常好。
其工作原理如下:
- 在MMS服务器上配置你的MongoDB信息(Host,Port,User,Passwd等)
- 在一台能够访问你MongoDB服务的内网机器上运行其提供的Agent脚本
- Agent脚本从MMS服务器获取到你配置的MongoDB信息
- Agent脚本连接到相应的MongoDB获取必要的监控数据
- Agent脚本将监控数据上传到MMS的服务器
- 登录MMS网站查看整理过后的监控数据图表了
另外多提一句,此监控工具的手机版已经发布,可以在google play商城上下载,名字叫做MongoDB Management Service(MMS),但是play比较烦人只能安装不能下载,我试了几次都没有成功下载,有能下载的可以贡献个apk给大家。
三、MMS安装部署
MMS的监控内容其实很不错,还支持硬件监控,但是需要MongoDB运行在linux主机上,由于目前我的环境是在windows平台上,没有现成的环境,下面就主要介绍在windows下的安装部署,后续有机会在实验在linux上的部署。当然官方有安装说明。
- 安装python
下载安装python (Python 2.7.5 Windows X86-64 Installer 3.3的貌似不可以用,优先安装64位的)
http://www.python.org/getit/
- 安装pymongo
注意pymongo的版本需要和pythonpython一致,如
pymongo-2.5.2.win-amd64-py2.7.exe 必须是与python对应的版本
https://pypi.python.org/pypi/pymongo/#downloads
- 下载10gen-mms-agent-[group].zip
使用mms首先需要登录到mms.mongodb.com去注册一个组,然后再组中增加主机等信息。系统会自动生成包含这个组的配置信息的专用的Monitoring Agent,下载。
- 配置PowerShell
Win7默认是安装的。如果没有安装请单独下载。
执行 Get-Host 查看当前PowerShell的版本
执行 Get-ExecutionPolicy 查看执行策略限制,默认一般是Restricted
执行 Set-ExecutionPolicy -ExecutionPolicy Unrestricted 解除执行策略限制
- 运行agent
执行下载的agent中的mongommsinstall.bat安装mms服务,成功后在服务中可以看到名称为mms的服务。
四、监控
1.填写host信息
本地mms服务启动后,在mms官网登陆后填写:
Host Type 主机类型
Internal Hostname 主机地址(相对于agent的地址,可以是localhost,192.168.x.x,也可以是域名和公网地址)
Port 端口号
DB Username 账户名(可选,admin库的账户名)
DB Password 密码(可选,admin库的密码)
2.数据同步
等待大约10分钟,就可看到数据了。
五、使用说明
网上的很多资料也都仅仅局限在安装,对具体的内容没有做详细的说明。这里我仅仅记录下这2天发现的一些tip。
- 一个组可以配置多主机,之前是只能一个组有一台主机,但是10gen马上认识到自己的问题,使用mongodb怎么可能只有一台主机,起码也是主从啊,索引现在可以配置多台主机。
- 提醒
Agent停止,在页面最上面右侧会有专门的提醒。
Db down掉按道理也应该有提醒,但是由于目前没有配置硬件监控,看不到硬件的图形,但是在常规图形监控中发现了一个很有趣的东西,上图:
在上图中的红色竖线就是我单独测试db down掉的情况,看来mms还是能很快捕捉到数据库的异常。当然在上面可以设置刷新间隔为1分钟,5分钟,1小时,1天等等,查看维度是随着刷新间隔自动关联的,也可以灵活设定。
下一篇我会对监控的内容进行详细说明,如果大家喜欢可以支持下。
树莓派 Raspberry-Pi 折腾系列:系统安装及一些必要的配置
入手树莓派将近一个月了,很折腾,许多资源不好找,也很乱。简单整理一下自己用到的东西,方便以后自己或别人继续折腾。
0. 操作系统下载
树莓派官方 Raspbian 系统下载:http://www.raspberrypi.org/downloads
或直接下载 http://downloads.raspberrypi.org/raspbian_latest.torrent 最新版的 BT 种子。
还有一个选择是由国人制作的超级精简版,更低内存占用:http://pan.baidu.com/share/link?shareid=167943&uk=1412008571
1. 系统安装
所谓“安装系统”其实不如说是“恢复”下载到的系统镜像到内存卡上,这个过程也没什么难度,就是看内存卡的速度,慢慢等而已。需要注意的是,市面上部分 4G 的内存卡,实际大小才 3.6G 多,会提示空间不足,所以还是直接购买 8G 吧,也差不了几块钱。
在 Windows 下可以使用 Win32 Disk Imager 进行镜像恢复,非常方便,也是树莓派官方推荐的方法。官方下载地址:http://sourceforge.net/projects/win32diskimager/
2. 通过 SSH 远程访问
老实说,我一直把树莓派定位为“一个扔在某个角落就可以自己跑得很欢的小电脑”,加上那仅有的两个 USB 口,一个插了 USB 无限网卡,另一个再拖个键盘或鼠标啥的,实在很不方便,那么最好还是能远程访问吧。
好在树莓派默认是有开启 SSH 的,但是我们系统刚安装,IP 还没设置,怎么找到它的 IP 地址呢?这时候就推荐使用另一个神器 PortScan 来找出我们的机器:
打开 PortScan 选择扫描范围,可以很方便的找出局域网中的其它机器,一般家庭中也没太多机器,找出树莓派是很容易的,如果是在公司,有很多机器的话,那么可以忽略那些有机器名的,然后剩下的一个一个尝试吧…
PortScan 下载地址:http://abel.oss.aliyuncs.com/file/PortScan.zip
3. ROOT 账号设置
如果你安装的是官方的 Raspbian 系统,那么默认的登录帐号为 pi 密码是 raspberry
为了方便折腾,建议第一时间启用 ROOT 账号吧~ 这个也很简单的,只需要执行一下两句命令即可:
// 设置 root 账号的密码,会让你输入两次新密码
sudo passwd root // 启用 root 账号登录
sudo passwd --unlock root
执行完之后,用 reboot 命令重启就可以用 root 登录啦。
4. 扩展可用空间
第一次用 root 登录,会自动弹出树莓派的高级设置面板(以后也可以通过 raspi-config 命令进入):
选择第一项 Expand Filesystem 扩展 SD 卡上可用的空间,不然以后会有很多大软件,不能安装(提示空间不足,例如 mysql)。
扩展之后可以通过 df -h 命令看到效果~
5. 更换软件源(apt-get sources)
树莓派的服务器实在太太太太太太慢了!会导致你安装一个几M的东西都要等大半天!肿么办!
好在树莓派官方有提供一个镜像列表:http://www.raspbian.org/RaspbianMirrors
在里面找到了几个国内的镜像,经过几番尝试,觉得来自中科大的速度非常不错~ 咱们就换成中科大的吧,镜像主页:https://lug.ustc.edu.cn/wiki/mirrors/help/raspbian
根据教程,咱们来编辑 /etc/apt/sources.list 文件。这里推荐用 nano 命令编辑,舍得去弄什么 VIM 啦。命令如下:
nano /etc/apt/sources.list
进入编辑界面,删除原有的内容,粘贴中科大提供的内容,结果如下:
然后使用 Ctrl+O 保存文件,Ctrl+X 退出编辑器。
然后执行 apt-get update 命令更新软件列表。
6. 设置静态 IP 地址
回到刚刚第二点提到的,不知道 IP 地址的问题,咱们要给树莓派设置一个静态 IP,省得 IP 变换又要重新找机器。还是用 nano 来编辑网络接口文件:
nano /etc/network/interfaces
如果你要设置的是有线网卡的 IP 地址,那么把 eth0 的 dhcp 改成 static 然后在下一行追加 IP 信息,结果大概如下:
iface eth0 inet static
address 192.168.1.200 # 设定的静态IP地址
netmask 255.255.255.0 # 网络掩码
gateway 192.168.1.1 # 网关
如果你要设置的是无线网卡的,那么除了把 wlan0 的 dhcp 改成 static 之外,还需要填写无线网的名称和密码,编辑后的结果大概如下:
iface wlan0 inet static
wpa-ssid Your_Wifi_SSID
wpa-psk Your_Wifi_Password
address 192.168.1.200 # 设定的静态IP地址
netmask 255.255.255.0 # 网络掩码
gateway 192.168.1.1 # 网关
network 192.168.1.1 # 网络地址
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
▲ 注意注释掉最后一行
搞定之后,咱们用 poweroff 命令关掉树莓派,等到机器上的绿灯不闪了,把电源拔掉,再把网线拔掉,重新连接电源,稍等一会,看看是不是就通过无线网络的 IP 地址可以访问了。
最后
至此,要折腾树莓派的几个准备工作都完成了,有了这些,以后折腾也更佳方便。
由于我当初手贱没有购买面驱动的 USB 网卡,买的是一个要自己编译驱动的,所以我折腾的东西还有很多,下次专门再来说说无线网卡驱动的事吧。