教你如何利用zabbix自动发现监控mongo数据库
2018-04-05 00:00
741 查看
导读 | 监控mongo写个模板其实挺快的,如果公司每个mongo使用的端口都一致的话,就可直接建立一套模板,然后这个模板链接到各个服务器上即可。 |
先看一下效果图,
此监控图是zabbix的筛选功能可能把相关的图整合到一个页面里面去。
具体的自动发现实现如下:
探索规则配置如上,机器上的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进行对应的设置,此脚本可能得针对自己的环境进行相对的调整。visudo添加配置如下:
zabbix ALL= NOPASSWD: /bin/netstat Defaults:zabbix !requiretty
探索完端口后,zabbix server就需要以端口为其中一个参数向zabbix agent取数据,其中项目原型配置如下:
如果返回的{#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集群的数据汇在一个网页上进行查看。
原文来自:https://www.linuxprobe.com/zabbix-mongo.html
相关文章推荐
- 手游公司运维之利用zabbix的自动发现功能监控游戏区服的redis数据库
- zabbix自动发现监控redis数据库
- zabbix自动发现监控redis数据库
- zabbix企业应用:利用自动发现监控IIS站点 推荐
- 【zabbix】利用LLD自动发现功能监控多Redis实例
- 利用Zabbix低级发现结合jstat命令自动监控Java进程
- 【zabbix】利用LLD自动发现功能监控多Tomcat实例
- 【zabbix】利用LLD自动发现功能监控多Memcached实例
- 自动化运维之监控篇---利用zabbix自动发现功能实现批量web url监控
- 添加zabbix自动发现(监控多tomcat实例)
- 自动化运维工具之Zabbix发现_自动注册及web页面状态监控(四)
- zabbix自动发现端口并监控
- Zabbix3.0 配置自动发现agent主机并添加监控
- Zabbix --> 客户端安装以及如何添加数据库的动态监控视图
- Zabbix之(3)--自动发现服务器并添加监控
- zabbix使用宏自动发现挂载的文件系统并进行监控
- Zabbix分布式监控之Discovery自动发现配置 推荐
- Centos7下通过Zabbix自动发现并监控硬盘
- zabbix自动发现功能 监控web url
- zabbix自动发现硬盘并监控其IO