Skip to content

Nginx性能数据监控

Nginx 性能数据监控

简介

Nginx 是一个非常流行的 Web 服务器,它被广泛应用于各种场景,如网站、移动应用、云服务等。在 Nginx 服务器中,我们可以通过 Prometheus 来监控 Nginx 服务器的性能,包括请求数、响应时间、错误率等。

Nginx 数据采集

  • 数据采集模块:nginx-module-vts(Virtual Hosts Traffic Status) 注意:nginx默认不携带此模块,需要单独安装
  • 监控内容:
    1. 请求状态:2XX,3XX,4XX,5XX
    2. 服务端连接数
    3. upstream 组中每个server的流量
    4. Server 流量字节数
  • 配置文件修改:
    • 在nginx.conf 中添加如下配置:
      http {
          vhost_traffic_status_zone;
      
          server {
              location /status {
                  vhost_traffic_status_display;
                  vhost_traffic_status_display_format html;
              }
          }
      }
      

安装 nginx + vts 模块

方法一: 直接安装

参考文档:

方式二: Docker安装(重点讲解)

  • 准备本地ngin.conf文件(参照上面Nginx数据采集中的配置文件修改)
  • 启动docker镜像,命令: docker run -d --name ng-vts -v <your path>/nginx.conf:/etc/nginx/nginx.conf -p 80:80 gaciaga/nginx-vts
  • 验证Nginx VTS启动是否成功
  • 访问nginx的监控页面:http://localhost/status

示例

alt text

Nginx VTS + Promethues数据监控

  • 将nginx VTS数据采集与Promethues监控集成,可以通过时间维度监控Nginx数据,通过图形化的界面展示,可视性更强。

系统构成:

  • Nginx VTS
  • nginx-vts-exporter:
    • 将nginx VTS数据采集到Promethues,并暴露给Promethues服务器进行监控和分析。
    • docke安装:docker run -d -it --name nginx-exporter --link ng-vts:ng -e NGINX_STATUS=http://ng/status/format/json -p 9913:9913 sophos/nginx-vts-exporter
  • Prometheus:
    • 将nginx-vts-exporter集成到Promethues,将如下配置添加到promethues.yml中,然后重启promethues:
      - job_name: "nginx-vts"
      static_configs:
      - targets: ["<your ip>:9913"]
      
    • 检查promethues中Nginx VTS Exporter是否已经处于运行状态 alt text
  • Grafana
    • 在Grafana中添加Nginx VTS的Dashboard
    • 选择import导入,然后使用Nginx VTS Dashboard ID: 2949
    • 在模板配置中选择Prometheus作为数据源
    • 保存配置
    • 打开刚刚创建的Nginx VTS面板,检查有没有Nginx数据

总结

  • 简介
  • Nginx 数据采集
  • 安装 nginx + vts 模块
  • Nginx VTS + Promethues数据监控