使用MMS(MongoDB Monitoring Service)监控MongoDB

一.MongoDB简介

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

*面向集合存储,易存储对象类型的数据。

*模式自由。

*支持动态查询

*支持完全索引,包含内部对象。

*支持查询。

*支持复制和故障恢复。

*使用高效的二进制数据存储,包括大型对象(如视频等)。

*自动处理碎片,以支持云计算层次的扩展性。

*支持RUBYPYTHONJAVAC++PHPC#等多种语言。

*文件存储格式为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上的部署。当然官方有安装说明。

  1. 安装python

下载安装python (Python 2.7.5 Windows X86-64 Installer   3.3的貌似不可以用,优先安装64位的)
http://www.python.org/getit/

  1. 安装pymongo

注意pymongo的版本需要和pythonpython一致,如
pymongo-2.5.2.win-amd64-py2.7.exe 必须是与python对应的版本

https://pypi.python.org/pypi/pymongo/#downloads

  1. 下载10gen-mms-agent-[group].zip

使用mms首先需要登录到mms.mongodb.com去注册一个组,然后再组中增加主机等信息。系统会自动生成包含这个组的配置信息的专用的Monitoring Agent,下载。

  1. 配置PowerShell 

Win7默认是安装的。如果没有安装请单独下载。

执行 Get-Host 查看当前PowerShell的版本
执行 Get-ExecutionPolicy 查看执行策略限制,默认一般是Restricted
执行 Set-ExecutionPolicy -ExecutionPolicy Unrestricted 解除执行策略限制

  1. 运行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。

  1. 一个组可以配置多主机,之前是只能一个组有一台主机,但是10gen马上认识到自己的问题,使用mongodb怎么可能只有一台主机,起码也是主从啊,索引现在可以配置多台主机。
  2. 提醒

Agent停止,在页面最上面右侧会有专门的提醒。

Db down掉按道理也应该有提醒,但是由于目前没有配置硬件监控,看不到硬件的图形,但是在常规图形监控中发现了一个很有趣的东西,上图:

 

在上图中的红色竖线就是我单独测试db down掉的情况,看来mms还是能很快捕捉到数据库的异常。当然在上面可以设置刷新间隔为1分钟,5分钟,1小时,1天等等,查看维度是随着刷新间隔自动关联的,也可以灵活设定。

 

下一篇我会对监控的内容进行详细说明,如果大家喜欢可以支持下。

posted @ 2013-11-25 11:39  天生我豺  阅读(13128)  评论(1编辑  收藏  举报