开启nginx status配置

location /ngx_status {
stub_status on;
access_log off;
}

重启

systemctl restart nginx

打开status页面

curl http://localhost:8001/ngx_status

编写脚本

#!/bin/bash
#author: twf
#description: zabbix监控nginx性能

HOST="127.0.0.1"
PORT="8001"

#检测nginx进程是否存在
function ping {
ps -ef |grep nginx |grep -v grep |wc -l
}

#检测nginx存活的连接数
function active {
curl http://${HOST}:${PORT}/ngx_status 2>/dev/null |grep 'Active' |awk '{print $3}'
}

#读取客户端请求数
function reading {
curl http://${HOST}:${PORT}/ngx_status 2>/dev/null |grep 'Reading' |awk '{print $2}'
}

#响应客户端请求数
function writing {
curl http://${HOST}:${PORT}/ngx_status 2>/dev/null |grep 'Reading' |awk '{print $4}'
}

#nginx已经处理完正在等待下一次请求指令的驻留连接,keepalive开启情况下,该值等于active-reading-writing
function waiting {
curl http://${HOST}:${PORT}/ngx_status 2>/dev/null |grep 'Reading' |awk '{print $6}'
}

#nginx启动到现在共处理的连接数
function server {
curl http://${HOST}:${PORT}/ngx_status 2>/dev/null |awk NR==3 |awk '{print $1}'
}

#nginx启动到现在共创建的多少次握手
function accepts {
curl http://${HOST}:${PORT}/ngx_status 2>/dev/null |awk NR==3 |awk '{print $2}'
}

#nginx总共处理的请求数
function requests {
curl http://${HOST}:${PORT}/ngx_status 2>/dev/null |awk NR==3 |awk '{print $3}'
}

$1

将自定义的UserParameter加入配置文件

UserParameter=nginx_status[*],/usr/local/bin/ngx_status.sh $1

重启zabbix-agent

systemctl restart zabbix-agent

zabbix-get获取