插件窝 干货文章 如何监控Nginx

如何监控Nginx

监控 Nginx 仪表板 请求 72    来源:    2025-04-03

Nginx监控方案

基础监控指标

1. 性能指标

  • 请求处理:请求率、活跃连接数、等待连接数
  • 响应时间:平均响应时间、各百分位响应时间
  • 错误率:4xx和5xx错误比例

2. 资源使用

  • CPU使用率
  • 内存占用
  • 文件描述符使用情况

监控工具推荐

1. 内置状态模块

启用Nginx状态模块:

location /nginx_status {
    stub_status on;
    access_log off;
    allow 127.0.0.1;
    deny all;
}

输出示例:

Active connections: 291 
server accepts handled requests
 16630948 16630948 31070465 
Reading: 6 Writing: 179 Waiting: 106 

2. Prometheus + Grafana方案

  • 使用nginx-prometheus-exporter收集指标
  • 配置示例: ```yaml
    • job_name: 'nginx' static_configs:
      • targets: ['nginx-exporter:9113'] ```
  • Grafana仪表板推荐:ID 12708

3. ELK Stack

  • 使用Filebeat收集Nginx日志
  • 在Logstash中解析日志格式
  • Kibana中创建可视化仪表板

4. 商业解决方案

  • Datadog
  • New Relic
  • Dynatrace

日志监控配置

访问日志格式优化

log_format main '$remote_addr - $remote_user [$time_local] '
                '"$request" $status $body_bytes_sent '
                '"$http_referer" "$http_user_agent" '
                '$request_time $upstream_response_time';

错误日志监控

error_log /var/log/nginx/error.log warn;

高级监控技巧

  1. 慢请求监控:筛选request_time超过阈值的请求
  2. 上游服务监控:关注upstream_response_time
  3. 地理位置分析:通过$remote_addr分析用户分布
  4. HTTP方法监控:特别关注非GET/POST请求

告警设置建议

  1. 5xx错误率 > 1%持续5分钟
  2. 平均响应时间 > 1秒持续10分钟
  3. 活跃连接数接近worker_connections限制的80%
  4. 上游服务不可用

性能调优相关监控

  1. Worker进程:监控worker进程内存增长
  2. 缓存命中率:proxy_cache和fastcgi_cache
  3. Keepalive连接:复用率监控

需要更详细的某方面信息或遇到具体问题,可以进一步探讨。