# 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 #改爲這樣
編寫獲取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
添加監控項 curl
添加圖形測試