Prometheus 和 Grafana 通过nginx-exporter监控nginx的详细步骤
在生产环境下,您已经部署了 Prometheus 和 Grafana,并希望通过它们来监控另一台 Ubuntu 20.04 上的 Nginx 服务。以下是配置步骤:
1. 安装和配置 nginx-exporter (Nginx 的 Prometheus 导出器)
nginx-exporter
是 Prometheus 用来从 Nginx 收集指标的组件。
安装步骤:
1.在目标 Ubuntu 20.04 服务器上安装 nginx-exporter
:
- 您可以使用官方的 Go 程序编译,或者直接下载预编译的二进制文件:
2.配置 nginx-exporter
:
- 假设您的 Nginx 的状态页在
http://localhost:8080/status
(这个 URL 需要在 Nginx 配置中开启并允许 Prometheus 访问),启动nginx-exporter
:
3.配置为服务(可选):
- 为了保证
nginx-exporter
能在系统重启后自动启动,您可以将其配置为系统服务:
sudo tee /etc/systemd/system/nginx-prometheus-exporter.service > /dev/null <<EOL [Unit] Description=Nginx Prometheus Exporter After=network.target [Service] User=nobody ExecStart=/usr/local/bin/nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status Restart=always [Install] WantedBy=multi-user.target EOL sudo systemctl daemon-reload sudo systemctl start nginx-prometheus-exporter sudo systemctl enable nginx-prometheus-exporter
2. 配置 Prometheus 来抓取 Nginx 的指标
在 Prometheus 的配置文件中(通常为 prometheus.yml
),添加 Nginx 的目标:
- 这里
<Nginx_Server_IP>
是您 Ubuntu 服务器的 IP 地址。 9113
是nginx-exporter
默认暴露的端口。
3. 在 Grafana 中创建 Nginx 的仪表盘
1.进入 Grafana,添加 Prometheus 数据源。
2.导入 Nginx 的现有仪表盘模板或创建自定义仪表盘:
- 您可以在 Grafana 官方模板库中找到 Nginx 的仪表盘模板(例如,Dashboard ID:11199 )。
3.设置数据源为您在 Prometheus 中配置的 Nginx 监控源,保存并应用。
4. 验证配置
- 确保在 Grafana 中能看到 Nginx 的相关监控数据。如果没有数据,检查以下内容:
- Nginx 状态页是否可以被
nginx-exporter
访问。 - Prometheus 是否可以正确抓取
nginx-exporter
的数据。 - Grafana 中的数据源配置是否正确。
- Nginx 状态页是否可以被
5. 其他优化和安全设置
- 您可以在生产环境中考虑使用认证或限制 IP 来保护 Nginx 状态页。
- 优化 Prometheus 抓取间隔,避免对服务器造成过大压力。
通过以上步骤,您应该能够成功在生产环境下使用 Prometheus 和 Grafana 监控 Nginx。
好的,下面我会具体举例说明如何配置 Nginx 的状态页并允许 Prometheus 访问,以便启动 nginx-exporter
。
1. 配置 Nginx 的状态页
首先,您需要在 Nginx 中启用状态页。可以通过在 Nginx 配置文件中添加 stub_status
模块来实现。
例子:配置 Nginx 的状态页
- 打开 Nginx 的主配置文件,通常位于
/etc/nginx/nginx.conf
或者/etc/nginx/sites-available/default
。 - 在配置文件中添加一个新的 location 块,用于暴露 Nginx 的状态信息。假设您要在
localhost:8080/status
暴露状态页,配置如下:
server { listen 8080; location /status { stub_status; allow 127.0.0.1; # 仅允许本地访问 deny all; # 拒绝其他所有访问 } }
stub_status
指令启用 Nginx 的基本状态信息。allow 127.0.0.1; deny all;
配置限制只有本地可以访问状态页,您可以根据需要修改允许访问的 IP。
3.保存配置文件后,重新加载 Nginx 服务以应用配置:
4.测试配置是否生效,访问 http://localhost:8080/status
:
预期输出应类似于:
2. 启动 nginx-exporter
配置好 Nginx 的状态页后,接下来就是启动 nginx-exporter
。
例子:启动 nginx-exporter
假设您的 nginx-exporter
已经安装在 /usr/local/bin/
路径下,可以通过以下命令启动:
这个命令告诉 nginx-exporter
从 http://localhost:8080/status
获取 Nginx 的状态信息并转换为 Prometheus 可识别的格式。
配置 nginx-exporter
为系统服务(可选)
为了确保 nginx-exporter
在系统重启后自动运行,可以将其配置为系统服务:
1.创建一个新的 systemd 服务文件:
2.将以下内容复制到服务文件中:
[Unit] Description=Nginx Prometheus Exporter After=network.target [Service] User=nobody ExecStart=/usr/local/bin/nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status Restart=always [Install] WantedBy=multi-user.target
3.保存并退出编辑器。
4.重新加载 systemd 并启动 nginx-exporter 服务:
3. 验证 nginx-exporter 工作情况
您可以通过访问 http://<Nginx_Server_IP>:9113/metrics
来检查 nginx-exporter
是否正常工作。访问时应看到 Prometheus 格式的指标数据。
通过以上步骤,您的 nginx-exporter
应该已经正确配置并在工作了,Prometheus 也可以开始抓取 Nginx 的监控数据了。
栏 目:Nginx
本文标题:Prometheus 和 Grafana 通过nginx-exporter监控nginx的详细步骤
本文地址:https://fushidao.cc/server/833.html
您可能感兴趣的文章
- 09-22Prometheus 和 Grafana 通过nginx-exporter监控nginx的详细步骤
- 09-22Nginx中alias指令的实现
- 09-22Nginx-Proxy-Manager可视化管理平台的使用
- 09-22Nginx IP限制与路径访问控制配置
- 09-22nginx basic认证的实现示例
- 09-22Nginx动态压缩gzip的实现示例
- 09-22Nginx搭建高可用的实现
- 09-22nginx界面管理工具之nginxWebUI 搭建与使用方法
- 09-22使用Nginx部署前端Vue项目的实现
- 11-22Nginx实现跨域使用字体文件的配置详解
阅读排行
推荐教程
- 09-22Nginx中alias指令的实现
- 09-22nginx界面管理工具之nginxWebUI 搭建与使用方法
- 09-22使用Nginx部署前端Vue项目的实现
- 09-22Nginx动态压缩gzip的实现示例
- 09-22Nginx-Proxy-Manager可视化管理平台的使用
- 09-22Prometheus 和 Grafana 通过nginx-exporter监控nginx的
- 09-22nginx basic认证的实现示例
- 09-22Nginx搭建高可用的实现
- 09-22Nginx IP限制与路径访问控制配置
- 11-22Nginx实现跨域使用字体文件的配置详解