zabbix监控nginx
file=`find /usr/local/nginx -name nginx.conf`PORT_ID=`cat $file|grep listen|grep -v '#'|awk -F ' ' '{print $2}'|awk -F ';' '{print $1}'`
local_ip=`ifconfig eth0 |awk -F '[ :]+' 'NR==2 {print $4}'`
#添加监控配置
m_no=`cat -n $file|grep 'access_log off;'|awk '{print $1}'`
sed -i ''$m_no'a allow '$local_ip';'$file
let "m_no=m_no+1"
sed -i ''$m_no'a allow xxx.xxx.xxx.xxx;'$file ##此处xxx.xxx.xxx.xxx请改成zabbix_server的IP
let "m_no=m_no+1"
sed -i ''$m_no'a deny all;'$file
echo "
# 检测nginx进程是否存在
function ping {
/sbin/pidof nginx | wc -l
}
# 检测nginx性能
function active {
/usr/bin/curl \"http://"$local_ip":"$PORT_ID"/nginxstatus/\" 2>/dev/null| grep 'Active' | awk '{print \$NF}'
}
function reading {
/usr/bin/curl \"http://"$local_ip":"$PORT_ID"/nginxstatus/\" 2>/dev/null| grep 'Reading' | awk '{print \$2}'
}
function writing {
/usr/bin/curl \"http://"$local_ip":"$PORT_ID"/nginxstatus/\" 2>/dev/null| grep 'Writing' | awk '{print \$4}'
}
function waiting {
/usr/bin/curl \"http://"$local_ip":"$PORT_ID"/nginxstatus/\" 2>/dev/null| grep 'Waiting' | awk '{print \$6}'
}
function accepts {
/usr/bin/curl \"http://"$local_ip":"$PORT_ID"/nginxstatus/\" 2>/dev/null| awk NR==3 | awk '{print \$1}'
}
function handled {
/usr/bin/curl \"http://"$local_ip":"$PORT_ID"/nginxstatus/\" 2>/dev/null| awk NR==3 | awk '{print \$2}'
}
function requests {
/usr/bin/curl \"http://"$local_ip":"$PORT_ID"/nginxstatus/\" 2>/dev/null| awk NR==3 | awk '{print \$3}'
}
# 执行function
\$1
">/home/zabbix/bin/nginx_status.sh
chmod +x /home/zabbix/bin/nginx_status.sh
chown zabbix:zabbix /home/zabbix/bin/nginx_status.sh
cat >> /etc/zabbix/zabbix_agentd.conf <<END
UserParameter=nginx.status[*],/home/zabbix/bin/nginx_status.sh \$1
END
service zabbix_agentd restart
nginx_stop
nginx_start
执行完成后轩入模版即可。
大赞
感谢楼主分享,学习了
页:
[1]