京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

Prometheus 和 Grafana 通过nginx-exporter监控nginx的详细步调

2024-11-3 16:10| 发布者: 8b79| 查看: 80| 评论: 0

摘要: 目录1. 安装和配置 nginx-exporter (Nginx 的 Prometheus 导出器)2. 配置 Prometheus 来抓取 Nginx 的指标3. 在 Grafana 中创建 Nginx 的仪表盘4. 验证配置5. 其他优化和安全设置1. 配置 Nginx 的状态页2. 启动 ngin
目录

在生产情况下,您已经摆设了 Prometheus 和 Grafana,并希望通过它们来监控另一台 Ubuntu 20.04 上的 Nginx 服务。以下是配置步调:

1. 安装和配置 nginx-exporter (Nginx 的 Prometheus 导出器)

[code]nginx-exporter[/code] 是 Prometheus 用来从 Nginx 收集指标的组件。

安装步调:

1.在目标 Ubuntu 20.04 服务器上安装 [code]nginx-exporter[/code]:

  • 您可以利用官方的 Go 程序编译,或者直接下载预编译的二进制文件:
[code]wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.10.0/nginx-prometheus-exporter_0.10.0_linux_amd64.tar.gz tar -xzvf nginx-prometheus-exporter_0.10.0_linux_amd64.tar.gz sudo mv nginx-prometheus-exporter /usr/local/bin/[/code]

2.配置 [code]nginx-exporter[/code]:

  • 假设您的 Nginx 的状态页在 [code]http://localhost:8080/status[/code](这个 URL 必要在 Nginx 配置中开启并允许 Prometheus 访问),启动 [code]nginx-exporter[/code]:
[code]nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status[/code]

3.配置为服务(可选):

  • 为了保证 [code]nginx-exporter[/code] 能在体系重启后主动启动,您可以将其配置为体系服务:
[code]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[/code]

2. 配置 Prometheus 来抓取 Nginx 的指标

在 Prometheus 的配置文件中(通常为 [code]prometheus.yml[/code]),添加 Nginx 的目标:

[code]scrape_configs: - job_name: 'nginx' static_configs: - targets: ['<Nginx_Server_IP>:9113'][/code]
  • 这里 [code]<Nginx_Server_IP>[/code] 是您 Ubuntu 服务器的 IP 地址。
  • [code]9113[/code] 是 [code]nginx-exporter[/code] 默认暴露的端口。

3. 在 Grafana 中创建 Nginx 的仪表盘

1.进入 Grafana,添加 Prometheus 数据源。

2.导入 Nginx 的现有仪表盘模板或创建自界说仪表盘:

  • 您可以在 Grafana 官方模板库中找到 Nginx 的仪表盘模板(例如,Dashboard ID:11199 )。

3.设置数据源为您在 Prometheus 中配置的 Nginx 监控源,生存并应用。

4. 验证配置

  • 确保在 Grafana 中能看到 Nginx 的相干监控数据。如果没有数据,检查以下内容:
    • Nginx 状态页是否可以被 [code]nginx-exporter[/code] 访问。
    • Prometheus 是否可以精确抓取 [code]nginx-exporter[/code] 的数据。
    • Grafana 中的数据源配置是否精确。

5. 其他优化和安全设置

  • 您可以在生产情况中考虑利用认证或限制 IP 来保护 Nginx 状态页。
  • 优化 Prometheus 抓取隔断,避免对服务器造成过大压力。

通过以上步调,您应该能够乐成在生产情况下利用 Prometheus 和 Grafana 监控 Nginx。

好的,下面我会具体举例阐明怎样配置 Nginx 的状态页并允许 Prometheus 访问,以便启动 [code]nginx-exporter[/code]。

1. 配置 Nginx 的状态页

起首,您必要在 Nginx 中启用状态页。可以通过在 Nginx 配置文件中添加 [code]stub_status[/code] 模块来实现。

例子:配置 Nginx 的状态页

  • 打开 Nginx 的主配置文件,通常位于 [code]/etc/nginx/nginx.conf[/code] 或者 [code]/etc/nginx/sites-available/default[/code]。
  • 在配置文件中添加一个新的 location 块,用于暴露 Nginx 的状态信息。假设您要在 [code]localhost:8080/status[/code] 暴露状态页,配置如下:
[code]server { listen 8080; location /status { stub_status; allow 127.0.0.1; # 仅允许本地访问 deny all; # 拒绝其他全部访问 } }[/code]
  • [code]stub_status[/code] 指令启用 Nginx 的根本状态信息。
  • [code]allow 127.0.0.1; deny all;[/code] 配置限制只有本地可以访问状态页,您可以根据必要修改允许访问的 IP。

3.生存配置文件后,重新加载 Nginx 服务以应用配置:

[code]sudo systemctl reload nginx[/code]

4.测试配置是否生效,访问 [code]http://localhost:8080/status[/code]:

[code]curl http://localhost:8080/status[/code]

预期输出应雷同于:

[code]Active connections: 1 server accepts handled requests 10 10 10 Reading: 0 Writing: 1 Waiting: 0 [/code]

2. 启动 nginx-exporter

配置好 Nginx 的状态页后,接下来就是启动 [code]nginx-exporter[/code]。

例子:启动 [code]nginx-exporter[/code]

假设您的 [code]nginx-exporter[/code] 已经安装在 [code]/usr/local/bin/[/code] 路径下,可以通过以下命令启动:

[code]nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status[/code]

这个命令告诉 [code]nginx-exporter[/code] 从 [code]http://localhost:8080/status[/code] 获取 Nginx 的状态信息并转换为 Prometheus 可识别的格式。

配置 [code]nginx-exporter[/code] 为体系服务(可选)

为了确保 [code]nginx-exporter[/code] 在体系重启后主动运行,可以将其配置为体系服务:

1.创建一个新的 systemd 服务文件:

[code]sudo nano /etc/systemd/system/nginx-prometheus-exporter.service[/code]

2.将以下内容复制到服务文件中:

[code][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[/code]

3.生存并退出编辑器。

4.重新加载 systemd 并启动 nginx-exporter 服务:

[code]sudo systemctl daemon-reload sudo systemctl start nginx-prometheus-exporter sudo systemctl enable nginx-prometheus-exporter[/code]

3. 验证 nginx-exporter 工作情况

您可以通过访问 [code]http://<Nginx_Server_IP>:9113/metrics[/code] 来检查 [code]nginx-exporter[/code] 是否正常工作。访问时应看到 Prometheus 格式的指标数据。

通过以上步调,您的 [code]nginx-exporter[/code] 应该已经精确配置并在工作了,Prometheus 也可以开始抓取 Nginx 的监控数据了。

图标id:111

到此这篇关于Prometheus 和 Grafana 通过nginx-exporter监控nginx的文章就先容到这了,更多相干Prometheus 和 Grafana 监控nginx内容请搜索脚本之家以前的文章或继续浏览下面的相干文章希望大家以后多多支持脚本之家!


来源:https://www.jb51.net/server/326496cb3.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-1 19:10 , Processed in 0.034539 second(s), 19 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部