Zabbix监控Mongo

安装Zabbix-agent

# groupadd zabbix
# useradd -g zabbix zabbix
# yum -y install gcc mysql-community-devel libxml2-devel unixODBC-devel net-snmp-devel libcurl-devel libssh2-devel OpenIPMI-devel openssl-devel openldap-devel libevent-devel pcre*
# tar -zxvf zabbix-3.4.4.tar.gz 
# cd zabbix-3.4.4
# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc --with-ssh2 --with-openipmi --with-openssl --prefix=/usr/local/zabbix
# make && make install

拷贝zabbix-agent启动脚本

# cp zabbix-3.4.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd

修改zabbix-ageng启动脚本

# vim /etc/init.d/zabbix_agentd 

BASEDIR=/usr/local/zabbix  #改成这样

配置zabbix-agent自定义key

编写获取mongo信息的脚本

# vim /usr/local/zabbix/script/mongo_info.sh

#!/bin/bash

case $# in
  1)
    output=$(/bin/echo "db.serverStatus().$1" |/usr/local/mongodb/bin/mongo admin |sed -n '4p')  #如果只输入一个参数就调用这里,打印第四行(结果在第四行)
    ;;
  2)
    output=$(/bin/echo "db.serverStatus().$1.$2" |/usr/local/mongodb/bin/mongo admin |sed -n '4p') #如果只输入两个参数就调用这里
    ;;
  3)
    output=$(/bin/echo "db.serverStatus().$1.$2.$3" |/usr/local/mongodb/bin/mongo admin |sed -n '4p') #如果只输入三个参数就调用这里
    ;;
esac

#check if the output contains "NumberLong"
if [[ "$output" =~ "NumberLong"   ]];then
  echo $output|sed -n 's/NumberLong(//p'|sed -n 's/)//p'
else
  echo $output
fi

配置zabbix-agent自定义key

# vim  /usr/local/zabbix/etc/zabbix_agentd.conf.d/mongo_status.conf

UserParameter=MongoDB.Status[*],/usr/local/zabbix/script/mongo_info.sh $1 $2 $3

重启zabbix-agent

#  /etc/init.d/zabbix_agentd restart

zabbix-server 调用测试

# /usr/local/zabbix/bin/zabbix_get  -s 172.16.1.216 -k MongoDB.Status[uptime]
23876

Zabbix Web界面添加监控

添加监控项 

添加图形

 

原文地址:https://www.cnblogs.com/chadiandianwenrou/p/8535134.html