插件窝 干货文章 zabbix监控nginx哪些内容

zabbix监控nginx哪些内容

Nginx 监控 Zabbix 连接 393    来源:    2025-04-03

在Zabbix中监控Nginx时,通常需要关注以下关键内容,以确保其性能、可用性和安全性:


1. 基础性能指标

  • 活跃连接数

    • Active connections:当前活跃的客户端连接数。
    • 监控项示例:nginx.active_connections
    • 告警阈值:持续高连接数可能需扩容或优化。
  • 请求处理统计

    • Accepts:已接受的客户端连接总数。
    • Handled:已处理的连接数。
    • Requests:总请求数(需关注QPS)。
    • 监控项示例:nginx.requests_per_second
    • 告警点:请求突增可能需防CC攻击或限流。
  • 连接状态

    • Reading:正在读取请求头的连接数。
    • Writing:正在发送响应的连接数。
    • Waiting:空闲连接数(长连接需重点关注)。
    • 监控项示例:nginx.waiting_connections

2. 资源使用

  • Nginx进程状态

    • 内存占用、CPU使用率(通过Zabbix Agent或proc.mem/proc.cpu)。
    • 监控僵尸进程(Zombie)或异常重启。
  • 文件描述符

    • 避免因连接过多导致Too many open files错误。

3. 响应指标

  • 响应时间

    • 通过Zabbix Web场景或Nginx的$request_time日志字段监控。
    • 告警阈值:如平均响应时间 > 500ms。
  • HTTP状态码

    • 统计2xx/3xx/4xx/5xx比例(通过日志或Nginx Plus API)。
    • 重点监控499(客户端提前关闭)、502(后端故障)、504(网关超时)。

4. 上游服务器(Upstream)

  • 后端健康状态
    • upstream_response_time:后端服务器响应时间。
    • upstream_status:后端返回的状态码(如502/503)。
    • 监控项示例:nginx.upstream.fails(失败请求计数)。

5. 缓存效率(如有启用缓存)

  • 缓存命中率
    • cache_hits / cache_misses
    • 低命中率需调整缓存策略。

6. 安全监控

  • 异常请求
    • 高频恶意IP(结合Zabbix触发器或日志分析)。
    • 异常User-Agent或URI(如扫描器特征)。

数据采集方法

  1. Nginx Status模块

    • 启用ngx_http_stub_status_module(默认编译),通过http://nginx_status暴露基础指标。
    • 配置示例:
      nginx location /nginx_status { stub_status on; allow 127.0.0.1; deny all; }
  2. 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}'
  3. 日志分析

    • 使用Zabbix日志监控或ELK集成,解析Nginx访问日志中的关键字段(如$status$request_time)。
  4. Prometheus + Grafana(可选)

    • 通过nginx-exporter暴露指标,Zabbix调用Prometheus API或直接集成。

Zabbix配置建议

  • 模板化:使用社区模板(如Zabbix官方或Github的nginx-monitoring模板)。
  • 触发器示例
    • {Nginx:nginx.requests_per_sec.last()}>1000:请求量突增告警。
    • {Nginx:nginx.upstream.fails.last()}>10:后端服务故障。

通过以上监控项,可全面覆盖Nginx的流量、性能、错误及资源使用情况,快速定位瓶颈或异常。