首页/网络/常用端口速查/9113 nginx-prometheus-exporter

9113 nginx-prometheus-exporter

Nginx 指标导出器默认端口:解析 stub_status 输出连接数、请求数等指标,是 Nginx 监控标准搭档。

常用端口速查网络更新于 2026-10-13

Nginx 指标导出器

nginx-prometheus-exporter 默认监听 9113 的 /metrics:它周期性拉取 Nginx 的 stub_status 页面,把连接数、请求数与握手数据转成 Prometheus 指标。Nginx 自身不输出 Prometheus 格式,这个导出器是社区与官方文档都推荐的配套组件。

基本信息

服务nginx-prometheus-exporter
协议TCP/HTTP(/metrics)
默认端口9113
前置依赖目标 Nginx 开启 stub_status
暴露面仅监控网段

典型使用场景

  • 把 Nginx 连接数与请求速率接进 Prometheus 做长期曲线
  • 排查 502/504 上升:先看活跃连接与请求速率的关系
  • 容量规划:按连接峰值推算 worker 与文件描述符需求
  • 多台 Nginx 统一采集,每台部署一个导出器实例
  • 配置变更前后对比:用基线判断改动影响

部署与验证

部署与验证
# Nginx 侧:
# location = /stub_status { stub_status; allow 127.0.0.1; deny all; }
nginx-prometheus-exporter --nginx.scrape-uri=http://127.0.0.1:8080/stub_status --web.listen-address=:9113
curl -s http://web01:9113/metrics | grep nginx_connections_active
curl -s http://127.0.0.1:8080/stub_status

排障与核对

检查项做法异常表现
导出器存活curl -s http://host:9113/metrics连不上:进程未起或监听地址绑定错误
上游页面curl stub_status 页面导出器报错:stub_status 未开或路径不符
指标值nginx_connections_active 等长期为 0:抓的是错误实例或错误端口
采集状态Prometheus targets 页面up=0:网络策略或鉴权未对齐
stub_status 页面建议只允许 127.0.0.1 或导出器所在地址访问:它不返回业务数据,但会暴露连接与请求规模,等于对外提供一份实时负载报表。

指标口径与阈值

stub_status 提供活跃连接、读、写、等待几类连接数以及累计请求数,导出器把它们转成对应指标。告警阈值要按业务峰值设定,不同站点的连接数基线差异很大,照搬别人的阈值会长期误报,最终导致告警被忽略。

容器与多实例场景要注意对应关系:一台主机跑多个 Nginx 时,每个实例都需要独立的 stub_status 位置与导出器端口,否则指标互相覆盖,图上看起来像负载翻倍。
把 stub_status 开放到全网:外部可轮询到连接数与请求规模,为压测与容量攻击提供参考数据。
抓取间隔决定曲线粒度:间隔比连接数的波动周期还长时,短时尖峰会被抹平,容量评估结果会偏乐观。建议按业务峰值的持续时间选择间隔,照抄默认值往往看不出真实压力。

易错点

  • stub_status 开放到全网而不是回环:运行数据被外部持续采集
  • 多个 Nginx 实例共用一个导出器端口:指标被错误合并,容量判断失真
  • 只采连接数不设告警基线:曲线持续上涨无人察觉,直到连接耗尽才报警
  • 改 Nginx 配置时未同步 stub_status 路径:指标中断,监控盲区悄然形成

数据来源与参考

  • nginxinc/nginx-prometheus-exporter 项目文档(默认 9113)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌