MongoDB如日中天,10gen也刚刚拿到了一笔2000万美元的融资,但是10gen在全球宣传MongoDB时,发现人们经常问到这样一个问题 “What should I be monitoring in production?”(我应该怎么对MongoDB进行监控呢?),而在此之前,已经有很多非官方的开源系统提供对MongoDB的操作及监控。而今天10gen自己发布了一款MongoDB监控系统,名为MMS(MongoDB Monitoring Service)。
    据10gen说,本系统的开发,是10gen与世界上各大MongoDB用户进行了深入合作,仔细汇总了其需求而完成,会对MongoDB及集群的全方位监控,将监控数据生成可视化的报表。目前提供免费版和商业版两种。任何人都可以注册MMS并享受其免费的服务。
先简单说下原理:
1、在mms服务器上添加mongodb服务器的ip,端口,user,password.
2、在mongodb服务器所在的内网空闲机器上安装定制的agent脚本。
3、agent脚本从mms获取你的服务器Ip及端口等信息,然后连接到mongodb服务器获取必要的监控数据。
4、agent脚本将监控信息上传到mms服务器,我们登陆后就可以查看到相应的信息了。
安装:
1、到mms.10gen.com注册一个新的账号,注册完成后登陆,到settings下的agent下下载agent脚本。
2、在Hosts项上点击添加,此处hostname填写内网IP,port为mongodb端口,user/password为用户名和密码。
 
3、把agent脚本上传到需要跑agent脚本的服务器上。
4、检查服务器上的python版本,如果是2.6版的就直接运行 nohup python agent.py >/tmp/agent.log 2>&1 &
    如果是2.4版的,则需要安装pymongo,simplejson,hashlib,hmac等包
    pymongohttp:http://api.mongodb.org/python/
    simplejson:http://pypi.python.org/pypi/simplejson/2.1.0
    hashlib:http://pypi.python.org/pypi/hashlib/20081119
    hmac:http://pypi.python.org/pypi/hmac
    安装过程:解压缩,
     python setup.py build
     python setup.py install
    上面4个包如果不安装的话,启动后会抛错,安装完成后,启动服务:nohup python agent.py >/tmp/agent.log 2>&1 &
     启动后观察一会日志,如果无抛错,则证明正常。
5、开启防火墙出口443,
  iptables -t filter -A OUTPUT -o eth1 -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
  service iptables restart

6、登陆mms.10gen.com,登陆后查看Hosts。


到此基本就监控成功了。。感觉还不错,有兴趣的可以研究下。