zabbix监控nginx状态信息

1、开启nginx状态监控页

# vim /etc/nginx/nginx.conf
http{
...

    server {
    ....

        location /status {
            stub_status on;
            allow 127.0.0.1;   #只允许本机访问监测页
            deny all;
        }

    ...
    }

...
}

 

2、nginx状态页说明

# curl 127.0.0.1/status
Active connections: 1 
server accepts handled requests
 64 64 128
Reading: 0 Writing: 1 Waiting: 0

第一行,active connections – 当前 Nginx 正处理的活动连接数。后面脚本中用active来代指

第三行第一个值64,表示总共处理了多少个连接。后面脚本用accepted来代指

第三行第二个值64,表示成功创建多少次握手 (和第一个值相同,证明中间没有失败的 )。后面脚本用handled来代指

第三行第三个值128,表示总共处理了多少次请求(平均每次握手处理了128/64=2个请求)。后面脚本用requests来代指

第四行Reading,表示nginx读取到客户端的 Header 信息数。后面脚本用reading来代指

第四行Writing,表示nginx返回给客户端的 Header 信息数。后面脚本用writing来代指

第四行Waiting,表示开启 keep-alive 的情况下,这个值等于 active – (reading + writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。后面脚本用waiting来代指

 

3、编写监测nginx的shell脚本

# vim /etc/zabbix/zabbix_agentd.d/check_nginx.sh
#!/bin/bash
case $1 in
active)
    /usr/bin/curl -s "http://127.0.0.1:$1/status" | awk '/^Active/ {print $NF}'
    ;;
reading)
    /usr/bin/curl -s "http://127.0.0.1:$1/status" | grep 'Reading' | cut -d" " -f2
    ;;
writing)
    /usr/bin/curl -s "http://127.0.0.1:$1/status" | grep 'Writing' | cut -d" " -f4
    ;;
waiting)
    /usr/bin/curl -s "http://127.0.0.1:$1/status" | grep 'Waiting' | cut -d" " -f6
    ;;
accepted)
    /usr/bin/curl -s "http://127.0.0.1:$1/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $1}'
    ;;
handled)
    /usr/bin/curl -s "http://127.0.0.1:$1/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $2}'
    ;;
requests)
    /usr/bin/curl -s "http://127.0.0.1:$1/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $3}'
    ;;
*)
    echo 'Error'
esac

 

4、编写zabbix-agent的自定义监控项

# vim /etc/zabbix/zabbix_agentd.d/nginx_satus.conf
UserParameter=nginx.status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/check_nginx.sh $1
 
重启zabbix-agent服务
# systemctl restart zabbix-agent

 

5、在Zabbix-server端测试

# zabbix_get -s 192.168.1.200 -k nginx.status[active]

# zabbix_get -s 192.168.1.200 -k nginx.status[handled]

。。。略

 

6、在Zabbix的WEB页面添加监控项

image

posted on 2019-12-06 09:56  强叔Linux  阅读(823)  评论(0编辑  收藏  举报