枫狐狸 发表于 2016-6-21 14:21:37

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


执行完成后轩入模版即可。

枫狐狸 发表于 2016-6-21 14:29:53

DTitRAGmNt 发表于 2016-6-21 15:49:52

大赞

kaola1209 发表于 2018-3-27 09:27:46

感谢楼主分享,学习了
页: [1]
查看完整版本: zabbix监控nginx