首先,打开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的各种访问参数(连接、已允许、读、写、等待、处理等个数)
发表回复
要发表评论,您必须先登录。