NGINX Prometheus Exporter 安装与配置完全指南

NGINX Prometheus Exporter 安装与配置完全指南

【免费下载链接】nginx-prometheus-exporter NGINX Prometheus Exporter for NGINX and NGINX Plus 【免费下载链接】nginx-prometheus-exporter 项目地址: https://gitcode.com/gh_mirrors/ng/nginx-prometheus-exporter

NGINX Prometheus Exporter 是一个用于监控 NGINX 和 NGINX Plus 的开源工具,它允许通过 Prometheus 监控系统收集这两个Web服务器的性能指标。此项目由 nginxinc 维护,并采用 Go 语言编写,确保了高效率和跨平台兼容性。

项目基础介绍

NGINX Prometheus Exporter 能够从单个 NGINX 或 NGINX Plus 实例获取指标,将这些指标转换为适当的 Prometheus 指标类型,最后通过 HTTP 服务器暴露它们以便 Prometheus 收集。

环境需求

  1. Prometheus: 确保已经安装并运行Prometheus服务
  2. NGINX 或 NGINX Plus: 需要配置好NGINX(需开启stub_status页面)或NGINX Plus(需开启API访问)
  3. Go环境(仅限自建二进制文件时需要)

安装步骤详解

获取项目源码

使用以下命令克隆项目仓库:

git clone https://gitcode.com/gh_mirrors/ng/nginx-prometheus-exporter.git
cd nginx-prometheus-exporter

配置NGINX

对于 NGINX,编辑配置文件以公开stub_status页面:

server {
    listen 8080;
    location /stub_status {
        stub_status on;
        access_log off;
        allow 127.0.0.1; # 允许指定IP访问
        deny all;
    }
}

对于 NGINX Plus,确保API接口是可用的。

使用Docker容器运行

这是最推荐的运行方式:

监控NGINX

docker run -p 9113:9113 nginx/nginx-prometheus-exporter:1.4.0 --nginx.scrape-uri=http://你的NGINX主机IP:8080/stub_status

监控NGINX Plus

docker run -p 9113:9113 nginx/nginx-prometheus-exporter:1.4.0 --nginx.plus --nginx.scrape-uri=http://你的NGINX-Plus主机IP:8080/api

使用二进制文件运行

首先构建二进制文件:

make build

然后运行:

./nginx-prometheus-exporter --nginx.scrape-uri=http://你的NGINX主机IP:8080/stub_status

对于NGINX Plus:

./nginx-prometheus-exporter --nginx.plus --nginx.scrape-uri=http://你的NGINX-Plus主机IP:8080/api

配置Prometheus

在Prometheus的配置文件中添加新的scrape配置:

- job_name: 'nginx'
  static_configs:
  - targets: ['localhost:9113']

命令行参数详解

NGINX Prometheus Exporter 支持以下主要命令行参数:

  • --web.listen-address=:9113: 暴露指标和Web界面的地址
  • --web.telemetry-path="/metrics": 暴露指标的路径
  • --nginx.plus: 为NGINX Plus启动导出器(默认为NGINX)
  • --nginx.scrape-uri: 用于抓取NGINX或NGINX Plus指标的URI
  • --nginx.timeout=5s: 从NGINX或NGINX Plus抓取指标的超时时间

导出的指标

通用指标

  • nginx_exporter_build_info: 显示导出器构建信息
  • promhttp_metric_handler_requests_total: 按HTTP状态码统计的总抓取次数
  • go_*: Go运行时指标

NGINX OSS 指标

  • nginx_up: 显示上次指标抓取的状态
  • nginx_connections_accepted: 接受的客户端连接数
  • nginx_connections_active: 活跃的客户端连接数
  • nginx_connections_handled: 已处理的客户端连接数
  • nginx_connections_reading: NGINX正在读取请求头的连接数
  • nginx_connections_waiting: 空闲的客户端连接数
  • nginx_connections_writing: NGINX正在将响应写回客户端的连接数
  • nginx_http_requests_total: 总HTTP请求数

NGINX Plus 指标

NGINX Plus 提供了更丰富的指标集,包括:

  • 连接指标: 接受、活跃、丢弃和空闲的连接数
  • HTTP指标: 总HTTP请求数和当前HTTP请求数
  • SSL指标: 成功的SSL握手、失败的SSL握手和SSL握手期间的会话重用
  • HTTP服务器区域: 处理中的客户端请求、总客户端请求、发送给客户端的响应等

高级配置选项

SSL配置

如果需要SSL验证,可以使用以下参数:

  • --nginx.ssl-verify: 执行SSL证书验证
  • --nginx.ssl-ca-cert: 用于验证服务器SSL证书的PEM编码CA证书文件路径

Unix域套接字支持

支持通过Unix域套接字抓取NGINX指标:

nginx-prometheus-exporter --nginx.scrape-uri=unix:你的NGINX套接字路径:/stub_status

Grafana仪表板

项目提供了官方的Grafana仪表板,用于可视化导出器暴露的NGINX指标。仪表板允许您按实例过滤指标或查看所有实例的指标。

Grafana仪表板

仪表板安装步骤

  1. 在Grafana UI中使用新建仪表板按钮并点击导入
  2. 上传grafana/dashboard.json或在文本框中复制粘贴文件内容,然后点击加载
  3. 设置Prometheus数据源并点击导入
  4. 仪表板将出现,您可以在仪表板标题下方(左上角)过滤实例标签

故障排除

常见问题

  1. 无法连接到NGINX: 确保stub_status页面已正确配置且可访问
  2. 指标显示为0: 检查NGINX配置和网络连接
  3. Prometheus无法抓取: 验证导出器是否在正确端口运行

验证安装

  • 访问Prometheus UI,您应该在目标列表中看到名为'nginx'的作业,且状态为UP
  • 直接访问 http://localhost:9113/metrics 来查看导出的指标是否正确

构建和开发

构建二进制文件

使用Makefile构建:

make nginx-prometheus-exporter

运行测试

make test

代码检查

make lint

系统服务配置

要将导出器作为系统服务运行,可以参考项目中的示例配置:

examples/systemd/nginx_exporter.service

该服务文件提供了systemd配置,可以确保导出器在系统启动时自动运行。

总结

NGINX Prometheus Exporter 为NGINX和NGINX Plus提供了强大的监控能力。通过本文的详细指南,您可以轻松完成安装和配置,开始对您的Web服务器进行全面的性能监控。无论是通过Docker容器还是二进制文件运行,该工具都能提供稳定可靠的指标收集服务。

【免费下载链接】nginx-prometheus-exporter NGINX Prometheus Exporter for NGINX and NGINX Plus 【免费下载链接】nginx-prometheus-exporter 项目地址: https://gitcode.com/gh_mirrors/ng/nginx-prometheus-exporter

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值