Zabbix监控Nginx的各种访问参数(连接、已允许、读、写、等待、处理等个数)

Zabbix Liemer_Lius 1315℃ 0评论

首先,打开nginx的status功能:

# vim /etc/nginx/conf.d/default.conf    // yum安装的
在server段,加入如下的location:
    location /status {
        stub_status on;
        access_log off;
        allow 192.168.0.0/16;
        allow 127.0.0.1;
        deny all;
    }

重新载入Nginx,在浏览器访问,或者在允许的服务器里面,用curl命令来访问,都可得到如下结果:

Active connections: 1 
server accepts handled requests
 1 1 1 
Reading: 0 Writing: 1 Waiting: 0 

用命令处理,可以得到一系列的参数。我们将这些参数分别摘出来,做成UserParameter:
zabbix_agentd.conf里面打开如下配置:

Include=/etc/zabbix/zabbix_agentd/

添加nginx单独的zabbix配置文件:

# vim /etc/zabbix/zabbix_agentd/nginx.conf       // 加入如下配置
UserParameter=Nginx.active[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^Active/ {print $NF}'
UserParameter=Nginx.reading[*], /usr/bin/curl -s "http://$1:$2/status" | grep 'Reading' | cut -d" " -f2
UserParameter=Nginx.writing[*], /usr/bin/curl -s "http://$1:$2/status" | grep 'Writing' | cut -d" " -f4
UserParameter=Nginx.waiting[*], /usr/bin/curl -s "http://$1:$2/status" | grep 'Waiting' | cut -d" " -f6
UserParameter=Nginx.accepted[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$1}'
UserParameter=Nginx.handled[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$2}'
UserParameter=Nginx.requests[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$3}'
# service zabbix-agent restart

服务器端获取数据:

# zabbix_get -s 192.168.75.77 -k Nginx.active[192.168.75.77,80]
1
# ab -n 1000 -c 100 http://192.168.75.77/status        // 做一个压力测试
# zabbix_get -s 192.168.75.77 -k Nginx.accepted[192.168.75.77,80]       // 获取已经允许的连接数数据等
2072

 

 

转载请注明:liutianfeng.com » Zabbix监控Nginx的各种访问参数(连接、已允许、读、写、等待、处理等个数)

喜欢 (0)

发表回复