现在公司几个游戏项目主要使用MongoDB来存储游戏数据,所以对MongoDB的监控非常重要。关于MongoDB的其他监控方法详见以下几篇文章:
MongoDB监控一
MongoDB监控二 mongotop
MongoDB监控三 MongoDB自带监控方法
MongoDB监控四 dbStats和collStats和replSetGetStatus
http://mayulin.blog.51cto.com/1628315/575541
zabbix监控MongoDB的基本思路是先编写自定义脚本收集MongoDB的状态信息,通过db.serverStatus()函数的输出来获取,然后添加相应的模板。
本文使用的MongoDB版本是2.4.6
主要监控以下项目:
内存使用情况
连接数
锁
刷新写操作到磁盘
每秒执行的查询,插入,删除,更新等操作次数
每秒访问的索引次数,每秒命中索引的次数
MongoDB产生的总的页面错误数量
MongoDB的网络流量状况
编写监控脚本mongodb_status.sh
这里默认使用28018端口,可以根据情况自行修改端口
这个脚本根据传递参数的数量进行判断获取值的层级
#This script is used to get mongodb server status
#echo "db.serverStatus().uptime"|mongo 192.168.5.23:30002/admin
#echo "db.serverStatus().mem.mapped"|mongo 192.168.5.23:30002/admin
#echo "db.serverStatus().globalLock.activeClients.total"|mongo 192.168.5.23:30002/admin
case $# in
1)
output=$(/bin/echo "db.serverStatus().$1" |/data/app_platform/mongodb/bin/mongo admin --port 28018|sed -n '3p')
;;
2)
output=$(/bin/echo "db.serverStatus().$1.$2" |/data/app_platform/mongodb/bin/mongo admin --port 28018|sed -n '3p')
;;
3)
output=$(/bin/echo "db.serverStatus().$1.$2.$3" |/data/app_platform/mongodb/bin/mongo admin --port 28018|sed -n '3p')
;;
esac
#check if the output contains "NumberLong"
if [[ "$output" =~ "NumberLong" ]];then
echo $output|sed -n 's/NumberLong(//p'|sed -n 's/)//p'
else
echo $output
fi
2.添加zabbix配置文件mongodb_status.conf
将mongodb_status.conf放到/usr/local/zabbix/etc/zabbix_agentd.conf.d/目录下
在zabbix的主配置文件中需要注意设置
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UnsafeUserParameters=1
#echo "db.serverStatus().mem.mapped"|mongo admin --host xxxx --port xxx -uroot -pxxxx
#echo "db.serverStatus().mem.mapped"|mongo 10.4.9.112:28018/admin -uroot -pxxxx
#UserParameter=MongoDB.Status[*],/bin/echo "db.serverStatus().$1.$2" |/data/app_platform/mongodb/bin/mongo admin --port 28018|sed -n '3p'
UserParameter=MongoDB.Status[*],/usr/local/zabbix/bin/mongodb_status.sh $1 $2 $3
3.添加MongoDB监控模板
附件为参考模板
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755