我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

怎么使用Zabbix的自动发现来监控mongo数据库

这篇文章主要为大家展示了“怎么使用Zabbix的自动发现来监控mongo数据库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么使用Zabbix的自动发现来监控mongo数据库”这篇文章吧。

成都创新互联为客户提供专业的网站制作、做网站、程序、域名、空间一条龙服务,提供基于WEB的系统开发. 服务项目涵盖了网页设计、网站程序开发、WEB系统开发、微信二次开发、手机网站制作等网站方面业务。

监控mongo写个模板其实挺快的,如果公司每个mongo使用的端口都一致的话,就可直接建立一套模板,然后这个模板链接到各个服务器上即可。但如果公司使用mongo的端口如果不一致的话,那建议使用zabbix的自动发现的功能,自动发现mongo监听的端口,并对它进行相关数据的收集。

先看一下效果图

怎么使用Zabbix的自动发现来监控mongo数据库

此监控图是zabbix的筛选功能可能把相关的图整合到一个页面里面去。

具体的自动发现实现如下:

怎么使用Zabbix的自动发现来监控mongo数据库

探索规则配置如上,机器上的zabbix agent配置如下:

UserParameter=mongo.discover,python /usr/local/zabbix/discover_mongo.py

其中/usr/local/zabbix/discover_mongo.py为自动发现的脚本,脚本内容如下:

#coding:utf-8 import simplejson as json import commands  (status, output) = commands.getstatusoutput('''sudo netstat -tlnp|grep 'mongod'|awk '{print $4}'|awk -F':' '{print $(NF)}'|sort -u|grep -v "^28"''') outputs = output.split('\n') ports = [] for port in  outputs:     ports += [{'{#MONGOPORT}': port}]  print json.dumps({'data':ports},sort_keys=True,indent=4)

使用系统命令netstat把监听的端口筛选出来,然后以json的格式进行输出。定义到此就可以自动发现zabbix监听的端口。

注意:netstat一般zabbix用户没有权限,需要visudo进行对应的设置,此脚本可能得针对自己的环境进行相对的调整。

探索完端口后,zabbix server就需要以端口为其中一个参数向zabbix agent取数据,其中项目原型配置如下:

怎么使用Zabbix的自动发现来监控mongo数据库

如果返回的{#MONGOPORT}有多个的话,那监控项目就乘以几。

其中mongo.status的定义如下(此定义还是zabbix agent下):

UserParameter=mongo.status[*],sh /usr/local/zabbix/check_mongo.sh -p $1 -k $2  -K $3

使用一个脚本传入参数来获取mongo的一些数据收集,后续可直接扩展此脚本(-p代表端口),mongo的serverStatus有多个参数,采集的就用到opcounters等,-k和-K能具体获取其数值。其中脚本如下:

#!/bin/sh while getopts "p:k:K:" opt do         case $opt in                 p ) mongo_port=$OPTARG;;                 k ) key1=$OPTARG;;                 K ) key2=$OPTARG;;                 ? )                 echo 'parameter is wrong!'                 exit 1;;         esac done  if [ ! "${mongo_port}" ] || [ ! "${key1}" ] || [ ! "${key2}" ];then         echo "parameter is null"                 exit 1 fi  echo "db.serverStatus().${key1}"|mongo --port=${mongo_port}|sed 's/,/\r\n/g'|grep "${key2}" |awk -F':|,|}' '{print $2}'

部署完一个模板,把模板关联到mongo的机器,就能收集相关的操作信息。在模板上再添加一个图形原型,如下:

怎么使用Zabbix的自动发现来监控mongo数据库

模板应用完如果没问题就可以在zabbix的筛选中把mongo集群的数据汇在一个网页上进行查看。

以上是“怎么使用Zabbix的自动发现来监控mongo数据库”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


新闻标题:怎么使用Zabbix的自动发现来监控mongo数据库
分享链接:http://shouzuofang.com/article/jpjsop.html

其他资讯