# 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
添加图形测试