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.conf 中添加如下配置:
安装 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
示例
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是否已经处于运行状态
- 将nginx-vts-exporter集成到Promethues,将如下配置添加到promethues.yml中,然后重启promethues:
- Grafana
- 在Grafana中添加Nginx VTS的Dashboard
- 选择import导入,然后使用Nginx VTS Dashboard ID: 2949
- 在模板配置中选择Prometheus作为数据源
- 保存配置
- 打开刚刚创建的Nginx VTS面板,检查有没有Nginx数据
总结
- 简介
- Nginx 数据采集
- 安装 nginx + vts 模块
- Nginx VTS + Promethues数据监控