一、 nginx-prometheus-exporter
1 nginx 配置
1.1 Nginx 模块支持
nginx 安装的时候需要有 nginx 的状态模块: stub_status
可通过如下命令检查
nginx -V 2>&1 | grep -o with-http_stub_status_module
 
1.2 Nginx 配置文件配置
添加如下配置到自己 nginx 的配置文件中
server {
   
    listen 9010;
    location /metrics {
   
        stub_status on;
        access_log   off;
        error_log off;
        allow 127.0.0.1;
        deny all;
    }
}
 
2 部署 nginx-prometheus-exporter
2.1 二进制方式部署
需要在每台 nginx 所在的服务器上部署一个 nginx-prometheus-exporter
 github地址  https://github.com/nginxinc/nginx-prometheus-exporter
下载解压
curl -o nginx-prometheus-expoter.zip -L https://github.com/nginxinc/nginx-prometheus-exporter/archive/refs/heads/main.zip
unzip nginx-prometheus-expoter.zip
 
构建
 需要有 go 环境。 部署 go 环境 请参考
之后运行如下相关命令进行构建
cd nginx-prometheus-exporter-main
CGO_ENABLED=0 GOOS=linux GOARCH=$TARGETARCH go build -trimpath -a -ldflags "-s -w -X main.version=${VERSION}" -o nginx-prometheus-exporter .
 
构建成功后,在当前目录下会有二进制可执行文件 nginx-prometheus-exporter

2.1.2 配置 systemd
nginx-exporter.service
[Unit]
Description=NGINX Prometheus Exporter
Requires=nginx_exporter.socket
[Service]
User=nginx_exporter
ExecStart=/usr/local/bin/nginx-prometheus-exporter -nginx.scrape-uri="http://127.0.0.1:8080/stub_status"
[Install]
WantedBy=multi-user.target
 
2.1.3 获取 Nginx 指标数据
可以通过如下方式获取到 Nginx的指标数据
nginx-prometheus-exporter -nginx.scrape-uri=http://<nginx>:8080/metrics
其中<nginx>是IP地址/DNS名称,通过该名称可以使用nginx
也可以使用更快速的 UNIX 套接字
 请运行:
 nginx-prometheus-exporter -nginx.scrape-uri=unix:<nginx>:/metrics -web.listen-address=unix:/path/to/socket.sock
其中<nginx>是unix域套接字的路径,通过该套接字可以获得nginx运行状态。
2.1.4 添加 prometheus 的配置
  - job_name: "nginx"
    scrape_interval: 5s
    static_configs:
      - targets:
          - "<nginx-prometheus-exporter 的IP>:9113"
        labels:
          group: 'nginxs'
 



















