监控Nginx是确保Web服务稳定性和性能优化的关键环节。以下是全面的监控方案和工具推荐,分为核心指标、监控方法和工具选型三部分:
基础资源
性能指标
服务器资源
# 在nginx.conf中添加
server {
location /nginx_status {
stub_status on;
access_log off;
allow 192.168.1.0/24;
deny all;
}
}
输出示例:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
nginx-prometheus-exporter
暴露指标nginx-lua-prometheus
直接集成Lua模块nginx by Zabbix agent
模板监控stub_status日志分析优化
log_format json_analytics escape=json
'{"time":"$time_iso8601","host":"$host","status":"$status","request_time":"$request_time"}';
动态追踪
bpftrace
抓取内核级事件:bpftrace -e 'tracepoint:nginx:nginx_http_request { printf("%s\n", str(args->uri)); }'
主动健康检查
upstream backend {
server 10.0.0.1:80 max_fails=3 fail_timeout=30s;
health_check interval=5s uri=/health;
}
# 5xx错误率超过1%
- alert: HighErrorRate
expr: sum(rate(nginx_http_requests_total{status=~"5.."}[1m])) by (host) / sum(rate(nginx_http_requests_total[1m])) by (host) > 0.01
for: 5m
labels:
severity: critical
需求场景 | 推荐方案 |
---|---|
快速轻量级 | Prometheus + stub_status |
企业级集中监控 | Zabbix + 自定义脚本 |
云原生环境 | OpenTelemetry导出指标 |
深度日志分析 | ELK + Filebeat |
通过组合上述工具,可以实现从基础指标监控到性能瓶颈分析的完整链路。建议至少实施Prometheus+Granfa的基础监控,再根据业务复杂度逐步扩展。