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啓動腳本mysql

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

修改zabbix-ageng啓動腳本sql

# vim /etc/init.d/zabbix_agentd 

BASEDIR=/usr/local/zabbix  #改爲這樣

配置zabbix-agent自定義key

編寫獲取mongo信息的腳本mongodb

# 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自定義keyvim

# 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-agentbash

#  /etc/init.d/zabbix_agentd restart

zabbix-server 調用測試ssh

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

Zabbix Web界面添加監控

添加監控項 curl

添加圖形測試

 

 

 

 

 

 

 

 

 

 

 

相關文章
相關標籤/搜索