在Zabbix中监控Nginx时,通常需要关注以下关键内容,以确保其性能、可用性和安全性:
活跃连接数
Active connections
:当前活跃的客户端连接数。nginx.active_connections
请求处理统计
Accepts
:已接受的客户端连接总数。Handled
:已处理的连接数。Requests
:总请求数(需关注QPS)。nginx.requests_per_second
连接状态
Reading
:正在读取请求头的连接数。Writing
:正在发送响应的连接数。Waiting
:空闲连接数(长连接需重点关注)。nginx.waiting_connections
Nginx进程状态
proc.mem
/proc.cpu
)。文件描述符
Too many open files
错误。响应时间
$request_time
日志字段监控。HTTP状态码
2xx
/3xx
/4xx
/5xx
比例(通过日志或Nginx Plus API)。499
(客户端提前关闭)、502
(后端故障)、504
(网关超时)。upstream_response_time
:后端服务器响应时间。upstream_status
:后端返回的状态码(如502/503)。nginx.upstream.fails
(失败请求计数)。cache_hits
/ cache_misses
。Nginx Status模块
ngx_http_stub_status_module
(默认编译),通过http://nginx_status
暴露基础指标。nginx
location /nginx_status {
stub_status on;
allow 127.0.0.1;
deny all;
}
Zabbix Agent采集
UserParameter
自定义监控项,或通过zabbix-agent2
的Nginx插件。/etc/zabbix/zabbix_agentd.conf
):ini
UserParameter=nginx.requests,curl -s http://localhost/nginx_status | awk '/Requests/{print $3}'
日志分析
$status
、$request_time
)。Prometheus + Grafana(可选)
nginx-exporter
暴露指标,Zabbix调用Prometheus API或直接集成。nginx-monitoring
模板)。{Nginx:nginx.requests_per_sec.last()}>1000
:请求量突增告警。{Nginx:nginx.upstream.fails.last()}>10
:后端服务故障。通过以上监控项,可全面覆盖Nginx的流量、性能、错误及资源使用情况,快速定位瓶颈或异常。