首页/云/可观测性速查/nginx-prometheus-exporter:Nginx 指标采集
Prometheus 与采集64 条

nginx-prometheus-exporter:Nginx 指标采集

该 exporter 读取 Nginx 的 stub_status(或 Nginx Plus API)输出指标:连接数与请求统计;开源版需要开启 stub_status 端点。

可观测性速查云更新于 2026-10-13

nginx-exporter 是什么

nginx-prometheus-exporter 读取 Nginx 的 stub_status 页面(或用 Nginx Plus 的 API)并转成 Prometheus 指标:连接数、请求统计与可用性。开源版 Nginx 需要先开启 stub_status 端点并限制访问来源,否则状态页面会暴露在公网。

基本信息

默认端口9113
数据来源stub_status(开源版)/ API(Plus)
启动参数--nginx.scrape-uri
关键指标nginx_up、nginx_connections_active、nginx_http_requests_total
前置条件Nginx 已开启 stub_status
安全要求stub_status 需限制访问来源

典型使用场景

  • 监控活跃连接数,判断是否需要扩容 worker 或机器
  • 观察累计请求量的增长速率,评估流量变化
  • 用 nginx_up 判断采集链路是否正常
  • 配合上游指标区分「Nginx 有问题」还是「后端有问题」
  • 为网关层容量评估提供连接与请求基线
  • 版本升级后核对指标是否仍然采集正常

Nginx 开启 stub_status

Nginx 开启 stub_status
server {
    listen 8080;
    location = /basic_status {
        stub_status;
        allow 127.0.0.1;   # 只允许本机访问
        deny all;          # 拒绝其他来源
    }
}

运行 exporter

运行 exporter
nginx-prometheus-exporter --nginx.scrape-uri=http://127.0.0.1:8080/basic_status

# 常用指标
nginx_connections_active      # 当前活跃连接
nginx_connections_reading     # 正在读取请求的连接
nginx_http_requests_total     # 累计请求数
nginx_up                      # 能否成功采集

关键指标读法

指标含义异常信号
nginx_up采集是否成功0 表示 stub_status 不可达
nginx_connections_active活跃连接数持续贴近 worker 上限
nginx_connections_waiting空闲等待连接与活跃数一起看连接结构
nginx_http_requests_total累计请求数rate 后骤降说明流量异常
stub_status 只提供连接与请求统计;状态码分布、延迟与上游耗时需要靠访问日志或额外模块补齐,不要指望它做全量分析。
stub_status 的 allow/deny 漏配会把状态端点暴露到公网,虽然信息有限,但仍属于不必要的信息泄露。
连接数类指标在 Nginx reload 时可能重置,短窗口观察会出现波形台阶,判读时结合进程启动时间一起看。
Nginx Plus 提供更丰富的 API(上游健康、缓存命中),指标名与开源版不同,看板需要分别适配。
worker 与连接数上限的关系值得关注:单个 worker 能处理的连接数有限,活跃连接持续升高时应先核对 worker_connections 与 worker 进程数。
stub_status 属于 Nginx 基础模块,一般无需额外编译;若 location 未生效,先确认配置是否真的被加载(nginx -T 输出)。

易错点

  • stub_status 的 allow/deny 漏配会把状态端点暴露到公网
  • 连接数指标在 reload 时会重置,短窗口观察注意波形台阶
  • exporter 抓取路径与 Nginx 配置不一致(少了 server 端口或路径)会让 nginx_up 恒为 0
  • 把 requests_total 当瞬时值看会误判:累计计数必须 rate 之后才有意义
  • 只看 Nginx 连接数不看上游指标,容易把后端慢导致的连接堆积误判为网关问题
  • Nginx 配置改了但没有 reload,stub_status 路径不生效,现象是 exporter 启动正常却一直采集不到数据

数据来源与参考

  • nginx-prometheus-exporter 项目文档(github.com/nginxinc/nginx-prometheus-exporter)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌