zabbix 监控nginx
对Nginx状态页监控,需要nginx加载模块 --with-http_stub_status_module
1. 配置文件 nginx.conf
location /nginx_status {
stub_status;
access_log off;
}
2. cd /etc/zabbix/zabbix_agentd.d/
]# cat nginx_status.sh #!/bin/bash nginx_status_fun(){ NGINX_PORT=$1 NGINX_COMMAND=$2 nginx_active(){ /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status" 2>/dev/null | grep 'Active' | awk '{print $NF}' } nginx_reading(){ /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status" 2>/dev/null | grep 'Reading' | awk '{print $2}' } nginx_writing(){ /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status" 2>/dev/null | grep 'Writing' | awk '{print $4}' } nginx_waiting(){ /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status" 2>/dev/null | grep 'Waiting' | awk '{print $6}' } nginx_accepts(){ /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status" 2>/dev/null | awk NR==3 | awk '{print $1}' } nginx_handled(){ /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status" 2>/dev/null | awk NR==3 | awk '{print $2}' } nginx_requests(){ /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status" 2>/dev/null | awk NR==3 | awk '{print $3}' } nginx_status_page(){ /usr/bin/curl -i "http://127.0.0.1:"$NGINX_PORT"/nginx_status" 2>/dev/null | awk NR==1 | awk '{print $2}' } case $NGINX_COMMAND in active) nginx_active; ;; reading) nginx_reading; ;; writing) nginx_writing; ;; waiting) nginx_waiting; ;; accepts) nginx_accepts; ;; handled) nginx_handled; ;; requests) nginx_requests; ;; status) nginx_status_page; esac } main() { case $1 in nginx_status) nginx_status_fun $2 $3; ;; *) echo $"Usage: $0 {nginx_status key}" esac } main $1 $2 $3
3. 配置/etc/zabbix/zabbix_agent2.conf
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_status.sh "$1" "$2" "$3"
4. 测试能够获取到数据
# ./nginx_status.sh nginx_status 80 active 4
5. 配置监控模板

本文来自博客园,作者:不会跳舞的胖子,转载请注明原文链接:https://www.cnblogs.com/rtnb/p/16540203.html

浙公网安备 33010602011771号