Nginx配置VTS模块-对接Promethues监控

一、背景

        Nginx有一个stub_status模块,可以获取到Nginx的一些相关指标。stub_status 模块用于提供基本的 Nginx 性能统计数据。这个模块不是默认编译进 Nginx 的,所以如果需要使用它,确保 Nginx 是带有 --with-http_stub_status_module 选项编译的。

        stub_status 模块可以用来监控 Nginx 的活动连接数、接受和处理的请求数以及读取、写入或保持的请求数等信息。   

  • Active connections 是当前活跃的连接数量。
  • accepts 是已经接受的连接总数。
  • handled 是已经处理的连接总数。
  • requests 是接收到的客户端请求数。
  • Reading 表示Nginx正在从客户端读取请求头的连接数。
  • Writing 表示Nginx正在向客户端返回响应的连接数。
  • Waiting 表示处于 keep-alive 状态等待请求的连接数。 

        Nginx 的 stub_status 模块和 Nginx VTS (Virtual Host Traffic Status) 模块都提供了关于 Nginx 性能的监控信息,但它们的功能有所不同。以下是 stub_status 相对于 VTS 缺少的一些功能:

  1. 详细的虚拟主机统计

    • VTS 提供了每个虚拟主机(server block)的详细流量统计数据,包括响应时间、请求数、状态码分布等。
    • stub_status 只提供整个服务器级别的基础连接和请求统计数据。
  2. 缓存统计

    • VTS 能够展示有关 FastCGI、uWSGI 和代理缓存的使用情况和命中率等信息。
    • stub_status 不包含这些高级缓存统计信息。
  3. 上游服务器群集统计

    • VTS 可以显示与 upstream 群集相关的统计数据,比如每个后端服务器的健康状况、响应时间和失败次数等。
    • stub_status 并不提供对 upstream 服务器的任何监控信息。
  4. HTTP 方法和状态代码统计

    • VTS 支持按 HTTP 方法(GET, POST, PUT 等)和 HTTP 状态代码(200, 404, 500 等)进行分类统计。
    • stub_status 没有如此细粒度的统计能力。
  5. 自定义指标

    • VTS 允许通过配置文件添加自定义的监控指标。
    • stub_status 则是一个更为静态的模块,提供的指标是固定的。
  6. 图形界面支持

    • VTS 通常会配合一个前端界面来可视化收集到的数据,便于理解和分析。
    • stub_status 输出的是纯文本格式的数据,需要额外的工作才能将这些数据转化为易于理解的形式。
  7. 扩展性

    • VTS 是一个更加灵活和可扩展的解决方案,它可以通过 JSON 格式输出监控数据,方便与其他监控系统集成。
    • stub_status 提供的数据格式较为简单,主要用于基本的性能监测。

        要更深入和全面的 Nginx 流量及性能监控,VTS 是一个更加强大且适合的选择。并且VTS支持的数据格式很多,如JSON、HTML、以及我们熟悉的Promethues数据格式。

        将Nginx指标纳管到Prometheus正好能够符合我们的监控和告警体系,与我们要建设的可观测平台不谋而合!

二、配置过程

1、nginx编译vts模块

  vts模块地址: https://github.com/vozlt/nginx-module-vts

  需要注意的是,下载的vts版本和Nginx的版本号最好保持一致.否则可能出现兼容性问题,和es搭配kibana一样,也是要一一对应肯定最好的.

解压nginx源码包

解压vts模块压缩包

./configure --prefix=/usr/local/nginx --without-http_rewrite_module --without-http_gzip_module --a
dd-module=/root/nginx/nginx-module-vts-0.1.18/

2、配置nginx

location /status {
   vhost_traffic_status_display;
   vhost_traffic_status_display_format prometheus; # html、json、prometheus
}

3、配置promethues

访问nginx的/status页面,例如配置html则显示html页面,也可以显示json:

配置prometheus响应的数据格式后,显示prometheus数据:

4、配置grafana面板

官方的Grafana面板: https://grafana.com/grafana/dashboards/9785-nginx-vts/

面板ID: 9785

三、总结

        VTS模块能够获取比stub_status更详细、更丰富的指标,可以有助于我们对nginx有更全面的监控和配置更加合理的告警信息,便于问题的及时发现以及相关优化!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Rocky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值