Zabbix监控mongodb配置
本文主要介绍zabbix监控mongodb的配置。
zabbix监控mongodb需要自定义脚本去监控,脚本可以传入多个参数。
原理:通过mongodb客户端连接命令,过滤出db.serverStatus()输出的信息。
一、创建监控数据采集脚本
1.脚本内容:
#cat check_mongodb.sh#!/bin/bash## mongodb status# db.serverStatus().ok# memory status# Physical memory: db.serverStatus().mem.resident# Virtual memory: db.serverStatus().mem.virtual# opcounters status# insert: db.serverStatus().opcounters.insert# query: db.serverStatus().opcounters.query# update: db.serverStatus().opcounters.update# delete: db.serverStatus().opcounters.delete# connections status# current connections: db.serverStatus().connections.currentMONGODBPATH="/usr/local/mongodb3.2.1/bin/mongo"HOST="127.0.0.1"PORT="$1"MONGODB_PA="$MONGODBPATH ${HOST}:${PORT}" if [ $# == 3 ];then result=$(/bin/echo "db.serverStatus().$2.$3" | $MONGODBPATH ${HOST}:${PORT} --quiet) echo $resultelif [ $# == 2 ];then result=$(/bin/echo "db.serverStatus().$2" | $MONGODBPATH ${HOST}:${PORT} --quiet) echo $resultelse echo "Usage:$0 PORT mem resident"fi
2.脚本使用
存放位置:/usr/local/zabbix/etc/scripts
功能:
(1).脚本能接受三个参数传入,监控mongodb内存使用情况、客户端连接数、dml操作语句情况等
(2).脚本能接受二个参数传入,监控mongodb是否在线
二、修改agent配置文件
1.修改zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
2.在zabbix_agentd.conf.d下定义监控mongodb的key
#cat mongodb_stats.confUserParameter=mongodb_stats[*],/usr/local/zabbix/etc/scripts/check_mongodb.sh $1 $2 $3
3.重启agent服务
三、在web界面创建监控项
mongodb实例端口定义成主机宏,具体宏操作参考:http://hnr520.blog.51cto.com/4484939/1852655
1.创建监控mongodb是否在线items
键值:mongodb_stats[{$MONGODB_PORT_TEST},ok]
2.创建监控mongodb内存使用情况itmes
键值:mongodb_stats[{$MONGODB_PORT_TEST},mem,resident]
注意:采集到数据单位为MB,单位使用B,因此需要定义1024*1024倍数,否则当内存使用超过GB时没法显示出GB
3.创建监控mongodb客户端连接数items
键值:mongodb_stats[{$MONGODB_PORT_TEST},connections,current]
4.创建监控dml语句相关信息items
键值:mongodb_stats[{$MONGODB_PORT_TEST},opcounters,insert]
注意:通过db.serverStatus().opcounters监控到数据是服务启动以来总的数量,因此存储值类型需要修改成差量
其他几个query、delete、update类型创建
四、查看数据
选择监测中---->最新数据---->选择相应过滤条件
五、创建mongodb opcounters信息图形
选择配置---->主机---->选择mongodb主机---->图形