使用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天等等,查看维度是随着刷新间隔自动关联的,也可以灵活设定。
下一篇我会对监控的内容进行详细说明,如果大家喜欢可以支持下。