如何通过Nginx与vts-module实现Prometheus格式网关实时监控指标导出?
- 内容介绍
- 文章标签
- 相关推荐
本文共计998个文字,预计阅读时间需要4分钟。
直接上结论:
编译 Nginx 时必须启用 vts-module 和必要模块
vts-module 是第三方模块,不内置,且依赖明确的 HTTP 模块支持。缺任意一项,/status/format/json 接口要么 404,要么返回空或无 upstream 数据。
- 必须显式添加:
--add-module=/path/to/nginx-module-vts - 必须启用:
--with-http_v2_module(否则 vts 的 upstream 统计不生效) - 必须启用:
--with-http_ssl_module(若后端 upstream 用 HTTPS,vts 才能识别 scheme 和 port) - 避免使用太旧的 Nginx 版本(建议 ≥ 1.18),vts-module 对 1.21+ 兼容性更稳
验证是否生效:启动后请求 curl http://localhost/status/format/json,响应中应含 "upstreamZones" 字段,且每个 upstream name 下有 "requestCounter"、"inBytes"、"responseCodes" 等嵌套结构。
本文共计998个文字,预计阅读时间需要4分钟。
直接上结论:
编译 Nginx 时必须启用 vts-module 和必要模块
vts-module 是第三方模块,不内置,且依赖明确的 HTTP 模块支持。缺任意一项,/status/format/json 接口要么 404,要么返回空或无 upstream 数据。
- 必须显式添加:
--add-module=/path/to/nginx-module-vts - 必须启用:
--with-http_v2_module(否则 vts 的 upstream 统计不生效) - 必须启用:
--with-http_ssl_module(若后端 upstream 用 HTTPS,vts 才能识别 scheme 和 port) - 避免使用太旧的 Nginx 版本(建议 ≥ 1.18),vts-module 对 1.21+ 兼容性更稳
验证是否生效:启动后请求 curl http://localhost/status/format/json,响应中应含 "upstreamZones" 字段,且每个 upstream name 下有 "requestCounter"、"inBytes"、"responseCodes" 等嵌套结构。

