最近公司新上了几个mongodb的项目(单机版MongoDB),需要坐下监控。之前有一个监控模板,但是效果不好。于是重新去google了一把,有了如下记录。
公司主营业务:成都网站制作、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出旺苍免费做网站回馈大家。单机版的参考 https://github.com/oscm/zabbix/tree/master/mongodb
实验环境:
CentOS6.8 X86_64
Percona-server-mongodb-3.2.9
步骤:
1、将mongodb.sh这个脚本拷贝到/etc/zabbix/scripts下,修改下适合自己的环境
(我们线上mongodb没有设置密码,脚本里面也注释掉了相关代码),并chmod加执行权限
#!/bin/bash
##################################################
#AUTHOR: Neo
#WEBSITE: http://www.netkiller.cn
#Description£ozabbix mongodb monitor
#Note£oZabbix 3.2
#DateTime: 2016-11-23
##################################################
# 我这里线上环境的mongodb没有配置密码,只是通过iptables限制访问的IP
HOST=localhost
PORT=27017
#USER=monitor
#PASS=chen
index=$(echo$@ | tr " " ".")
#status=$(echo"db.serverStatus().${index}" |mongo -u ${USER} -p ${PASS} admin--port ${PORT}|sed -n '3p')
status=$(echo"db.serverStatus().${index}" |/usr/local/mongodb/bin/mongo admin--port ${PORT}|sed -n '3p')
#checkif the output contains "NumberLong"
if[[ "$status" =~ "NumberLong" ]];then
echo $status|sed -n 's/NumberLong(//p'|sed-n 's/)//p'
else
echo $status
fi
2、将userparameter_mongodb.conf拷贝到/etc/zabbix/zabbix_agentd.d下,具体内容如下:
UserParameter=mongodb.status[*],/etc/zabbix/scripts/mongodb.sh$1 $2 $3 $4 $5
3、在zabbix的web后台导入监控模板,并将mongodb主机和模板做关联。
附件为上面提到的3个文件打包。
配好的监控如下图:
复制集版本的MongoDB的监控模板在试验中,没问题后再贴出来。
附件:http://down.51cto.com/data/2366564另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。