You need to enable JavaScript to run this app.
文档中心
托管 Prometheus

托管 Prometheus

复制全文
下载 pdf
Exporter 接入
Nginx Exporter 接入
复制全文
下载 pdf
Nginx Exporter 接入
托管 Prometheus 支持基于 exporter 的方式来监控 nginx 的运行状态,本文为您介绍如何在集群中部署 nginx-exporter,并实现对 nginx 的监控。
背景信息
nginx 应用通过 stub_status 页面暴露了部分监控指标。nginx-exporter 会采集单个 nginx 实例指标,并将其转化为 Prometheus 可用的监控数据。
前提条件
  • 托管 Prometheus
  • 已创建托管 Prometheus 工作区,详情请参见 创建工作区
  • 容器服务
  • 已注册并开通火山引擎容器服务(VKE)。
  • 已部署 Grafana 并接入工作区。
配置步骤
步骤一:开启 stub_status 功能
nginx 通过 stub_status 页面暴露 nginx 的状态数据。当您完成 nginx 部署后,需要首先检查 nginx 是否启用了该功能。
  1. 在 nginx 所在环境中,执行以下命令,检查 nginx 是否启用了 stub_status 页面。
nginx -V 2>&1 | grep -o with-http_stub_status_module
如果命令回显为 with-http_stub_status_module ,则说明 nginx 已启用 stub_status 模块。
2. 修改 nginx.conf 配置文件,指定 stub_status 页面的访问端口号和 URL 地址。
server {
listen 8080;
location /stub_status {
stub_status on;
access_log off;
}
}
  1. 重新加载 nginx ,使得配置生效。
nginx -t
nginx -s load
  1. 配置完成后,可以在本地环境中,通过 URL 查看 nginx 的指标信息。
curl http://127.0.0.1:8080/stub_status
预期返回结果如下所示。
Active connections: 45
server accepts handled requests
1056958 1156958 4491319
Reading: 0 Writing: 25 Waiting : 7
步骤二:部署 nginx-exporter
  1. 在左侧菜单栏中选择 集群,并在右侧集群列表中选择目标集群。
  1. 单击集群名称,进入集群配置页面。
  1. 在左侧菜单栏中选择 工作负载 > 无状态负载。 单击 使用 Yaml 创建 ,部署 nginx-exporter。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-exporter # 配置 exporter 的名称
namespace: volcano-metrics # 配置 exporter 的命名空间
labels:
app-name: nginx-exporter # 配置 exporter 的标签
spec:
replicas: 1 # 配置 exporter 副本数
selector:
matchLabels:
app: nginx-exporter
template:
metadata:
labels:
app: nginx-exporter
spec:
containers:
- args:
- "-nginx.scrape-uri=http://<nginx-ip>:8080/stub_status" # 配置 exporter 抓取指标的页面路径,该路径需要与 nginx 的 stub_status 页面路径一致。
name: nginx-exporter # 配置容器名称
image: nginx/nginx-prometheus-exporter:latest # 拉取 Docker Hub 中的 exporter 镜像
ports:
- containerPort: 9113 # 配置容器端口号
app-name: metric-port # 配置容器端口名称
步骤三:配置服务发现
  1. 在左侧菜单栏中选择 工作负载 > 对象浏览器
  1. 单击 使用 Yaml 创建 ,通过 PodMonitor 配置服务发现。
  • 类型 下拉菜单中选择 自定义
  • Yaml 配置框内输入 Yaml 配置。
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: nginx-exporter # 配置 PodMonitor 的名称
namespace: volcano-metrics # 配置 PodMonitor 的命名空间
labels:
volcengine.vmp: "true" # 配置 PodMonitor 的标签,允许被 Prometheus-agent 发现
spec:
podMetricsEndpoints:
- interval: 30s
port: metric-port # 填写 exporter 的容器端口名称
path: /metrics # 填写指标暴露的 URI 路径,不填默认为 /metrics
namespaceSelector:
matchNames:
- volcano-metrics # 配置为 exporter 所在的命名空间
selector:
matchLabels:
app-name: nginx-exporter # 配置 exporter 的 Label 值,以定位和选择目标 Pod
结果验证
  1. 执行以下命令,配置 Grafana 端口映射。
kubectl port-forward service/grafana 3000:3000 -n volcano-metrics
  1. 在本地环境(Linux/Mac)中打开浏览器,在地址栏中输入 localhost:3000,进入 Grafana 登录界面,使用默认用户名admin密码admin登录。
  • alt
  1. 登录 Grafana 后,创建 nginx 大盘,即可查看 nginx 信息。
  • alt
说明
nginx-exporter 的详细参数,请参见 nginx-exporter
最近更新时间:2025.09.03 15:13:01
这个页面对您有帮助吗?
有用
有用
无用
无用