博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zabbix自动发现监控mongo数据库
阅读量:7102 次
发布时间:2019-06-28

本文共 1971 字,大约阅读时间需要 6 分钟。

hot3.png

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

 

先看一下效果图,

220413_qcGx_1588616.png

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

 

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

220551_7PkM_1588616.png

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

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

 

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

#coding:utf-8import simplejson as jsonimport 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取数据,其中项目原型配置如下:

221130_QYED_1588616.png

如果返回的{#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/shwhile getopts "p:k:K:" optdo        case $opt in                p ) mongo_port=$OPTARG;;                k ) key1=$OPTARG;;                K ) key2=$OPTARG;;                ? )                echo 'parameter is wrong!'                exit 1;;        esacdoneif [ ! "${mongo_port}" ] || [ ! "${key1}" ] || [ ! "${key2}" ];then        echo "parameter is null"                exit 1fiecho "db.serverStatus().${key1}"|mongo --port=${mongo_port}|sed 's/,/\r\n/g'|grep "${key2}" |awk -F':|,|}' '{print $2}'

 

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

222121_CR2Y_1588616.png

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

 

最后附上本人的网络课堂地址,如有兴趣请点击: 

模板见:https://git.oschina.net/zhuangweihong/ops

转载于:https://my.oschina.net/zhuangweihong/blog/782000

你可能感兴趣的文章
haproxy之二
查看>>
tomcat在linux安装
查看>>
我的友情链接
查看>>
19个PHP模板引擎
查看>>
iphone的PC端管理软件开源项目
查看>>
ORA-65085: cannot open pluggable database in read-only mode问题解决
查看>>
mysql导入报错Variable 'sql_notes' can't be set to the value of 'NULL'
查看>>
升级Xcode8之后 XMPP 遇到重定义的问题 Redefinition of module 'dnssd'
查看>>
RHEL6.4 KVM虚拟化网卡桥接,PXE无人值守安装虚拟机
查看>>
我的友情链接
查看>>
PDF转换为SWF
查看>>
Maven项目下update maven后Eclipse报错:java.lang.ClassNotF
查看>>
linux开机启动流程
查看>>
Sublime Text Build 3017 x86 dev版发布
查看>>
JS判断移动端访问设备并解析对应CSS
查看>>
文件操作类2
查看>>
思科交换机端口安全
查看>>
【书签】ionic mobile app development framework
查看>>
中间固定两侧自适应三栏布局
查看>>
技术人员,你拿什么拯救你的生活----温水煮青蛙
查看>>