1. 启用 nginx status 配置
在 location 添加下列内容:
server {
location /ngx_status
{
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
示例:
······
server {
listen 80;
server_name example.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8080;
}
location /goaccess {
root /usr/local/src;
}
location /ngx_status
{
stub_status on;
access_log off;
allow 127.0.0.1;
}
······
2. 重载 nginx
ngixn -s reload
3. 打开 status 页面
curl http://127.0.0.1/ngx_status
Active connections: 3
server accepts handled requests
123630 123630 477618
Reading: 0 Writing: 1 Waiting: 2
若启用 https 和域名访问,则直接将 IP 地址换成域名:
curl https://domain/ngx_status
4. nginx status 详解
- active connections – 活跃的连接数量
- server accepts handled requests — 总共处理了 11989 个连接 , 成功创建 11989 次握手, 总共处理了 11991 个请求
- reading — 读取客户端的连接数.
- writing — 响应数据到客户端的数量
- waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.
以上为 nginx 性能计数,我们除了监控以上数据,还需要监控 nginx 进程状态,并且配置触发器
2.zabbix 客户端配置
2.1 编写客户端脚本
- /etc/zabbix/zabbix_agentd.d/nginx_status.sh
2.2 添加脚本执行权限
chmod +x /etc/zabbix/zabbix_agentd.d/nginx_status.sh
2.3 自定义 UserParameter
- /etc/zabbix/zabbix_agentd.d/nginx.conf
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_status.sh $1
2.4 重启 zabbix-agent
systemctl restart zabbix-agent
2.5 zabbix_get 获取数据
zabbix_get -s 127.0.0.1 -p 10050 -k 'nginx.status[accepts]'
123833
zabbix_get -s 127.0.0.1 -p 10050 -k 'nginx.status[ping]'
1
3.zabbix web 端配置
3.1 导入 Template App NGINX 模板
3.2 添加模板
注意:不要添加错了,zabbix 自带 nginx 模板不过我们不用
3.3 效果
4.参考
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于