当前位置: 代码网 > 服务器>服务器>Linux > Prometheus 和 Grafana 通过nginx-exporter监控nginx的详细步骤

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

2024年08月26日 Linux 我要评论
在生产环境下,您已经部署了 prometheus 和 grafana,并希望通过它们来监控另一台 ubuntu 20.04 上的 nginx 服务。以下是配置步骤:1. 安装和配置 nginx-exp

在生产环境下,您已经部署了 prometheus 和 grafana,并希望通过它们来监控另一台 ubuntu 20.04 上的 nginx 服务。以下是配置步骤:

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

nginx-exporter 是 prometheus 用来从 nginx 收集指标的组件。

安装步骤:

1.在目标 ubuntu 20.04 服务器上安装 nginx-exporter

  • 您可以使用官方的 go 程序编译,或者直接下载预编译的二进制文件:
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/

2.配置 nginx-exporter

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

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 的目标:

scrape_configs:
  - job_name: 'nginx'
    static_configs:
      - targets: ['<nginx_server_ip>:9113']
  • 这里 <nginx_server_ip> 是您 ubuntu 服务器的 ip 地址。
  • 9113nginx-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 中的数据源配置是否正确。

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 服务以应用配置:

sudo systemctl reload nginx

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

curl http://localhost:8080/status

预期输出应类似于:

active connections: 1 
server accepts handled requests
 10 10 10 
reading: 0 writing: 1 waiting: 0 

2. 启动 nginx-exporter

配置好 nginx 的状态页后,接下来就是启动 nginx-exporter

例子:启动 nginx-exporter

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

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

这个命令告诉 nginx-exporterhttp://localhost:8080/status 获取 nginx 的状态信息并转换为 prometheus 可识别的格式。

配置 nginx-exporter 为系统服务(可选)

为了确保 nginx-exporter 在系统重启后自动运行,可以将其配置为系统服务:

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

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

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 服务:

sudo systemctl daemon-reload
sudo systemctl start nginx-prometheus-exporter
sudo systemctl enable nginx-prometheus-exporter

3. 验证 nginx-exporter 工作情况

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

通过以上步骤,您的 nginx-exporter 应该已经正确配置并在工作了,prometheus 也可以开始抓取 nginx 的监控数据了。

图标id:111

到此这篇关于prometheus 和 grafana 通过nginx-exporter监控nginx的文章就介绍到这了,更多相关prometheus 和 grafana 监控nginx内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com