vim /etc/nginx/conf.d/default.conf
location = /basic_status { stub_status; }
Active connections:当前活动客户端连接数,包括Waiting连接数。
accepts:接受的客户端连接总数。
handled:处理的连接总数。accepts 通常,除非已达到某些资源限制(例如, worker_connections限制) ,否则该参数值相同。
requests:客户端请求的总数。
Reading: nginx 正在读取请求标头的当前连接数。
Writing :nginx 将响应写回客户端的当前连接数。
Waiting:当前等待请求的空闲客户端连接数。
vim /server/scripts/nginx_status.sh #!/bin/bash # Description:zabbix监控nginx性能以及进程状态 HOST="172.16.1.21" PORT="80" # 检测nginx进程是否存在 function ping { /sbin/pidof nginx | wc -l } # 检测nginx性能 function active { /usr/bin/curl "http://$HOST:$PORT/basic_status" 2>/dev/null| grep 'Active' | awk '{print $NF}' } function reading { /usr/bin/curl "http://$HOST:$PORT/basic_status" 2>/dev/null| grep 'Reading' | awk '{print $2}' } function writing { /usr/bin/curl "http://$HOST:$PORT/basic_status" 2>/dev/null| grep 'Writing' | awk '{print $4}' } function waiting { /usr/bin/curl "http://$HOST:$PORT/basic_status" 2>/dev/null| grep 'Waiting' | awk '{print $6}' } function accepts { /usr/bin/curl "http://$HOST:$PORT/basic_status" 2>/dev/null| awk NR==3 | awk '{print $1}' } function handled { /usr/bin/curl "http://$HOST:$PORT/basic_status" 2>/dev/null| awk NR==3 | awk '{print $2}' } function requests { /usr/bin/curl "http://$HOST:$PORT/basic_status" 2>/dev/null| awk NR==3 | awk '{print $3}' } $1 # 执行function
vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf UserParameter=nginx.status[*],/bin/bash /server/scripts/nginx_status.sh $
chmod +x /server/scripts/nginx_status.sh #测试脚步 sh /server/scripts/nginx_status.sh active
#在zabbix服务器上面测试获取key值 zabbix_get -s 172.16.1.21 -p 10050 -k nginx.status[ping]