Prometheus 抓取 Nginx 指标

Prometheus 抓取 Nginx 运行时指标,主要有以下方法:

  • Nginx 通过自己的 stub_status 页面 (需要 with-http_stub_status_module 模块支持) 暴露出了一些 Nginx 运行时的指标,较为简单,在 Prometheus 中对应的 Metrics 也少。nginx_exporter 主要就是获取 stub_status 中内建的指标。
  • 可以通过 nginx-vts-exporter 监控 Nginx 更多的指标,但 nginx-vts-exporter 依赖于 Nginx 编译安装是添加的第三方模块 nginx-module-vts 来实现,指标更为丰富。建议使用此种监控方式。

环境信息

  • Centos 7
  • Nginx stable 1.24.0
  • nginx-vts-exporter v0.10.3
  • nginx-module-vts v0.2.2

安装配置 nginx-vts-exporter 和 nginx-module-vts 来监控 Nginx Metrics

Nginx 编译安装 nginx-module-vts 模块

Nginx 编译安装 `nginx-module-vts` 模块

Nginx 安装了 nginx-module-vts 后,可以通过以下配置暴露运行时的指标

status.conf
vhost_traffic_status_zone;
vhost_traffic_status_filter_by_host on;


server{
listen 8081;
server_name localhost;
location /status {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
}

重启 Nginx 后,访问 http://localhost:8081/status 即可查看到 Nginx 运行时的指标

安装 nginx-vts-exporter

nginx-vts-exporter github 官网

wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
tar -xf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
cp nginx-vts-exporter-0.10.3.linux-amd64/nginx-vts-exporter /usr/bin/

创建 systemd 管理配置文件 /usr/lib/systemd/system/nginx-vts-exporter.service

/usr/lib/systemd/system/nginx-vts-exporter.service

[Unit]
Description=nginx-vts-exporter
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/bin/nginx-vts-exporter \
-nginx.scrape_timeout 10 \
-nginx.scrape_uri http://127.0.0.1:8081/status/format/json
Restart=on-failure
[Install]
WantedBy=multi-user.target

启动服务,默认监听端口为 9913

systemctl enable --now nginx-vts-exporter

浏览器访问 localhost:9913/metrics 即可看到 nginx-vts-exporter 暴露出来的 Metrics

之后 Prometheus 可通过 9913 端口抓取监控数据。