使用 Docker 部署可视化面板监控 Nginx

581 阅读3分钟

使用 Docker 部署 Prometheus、Grafana 和 Nginx Exporter,确保它们能够正确通信并监控你的 Nginx 服务。

一、拉取必要的 Docker 镜像

首先,从 Docker Hub 拉取 Prometheus、Grafana 和 Nginx Exporter 的镜像:

docker pull prom/prometheus
docker pull grafana/grafana
docker pull nginx/nginx-prometheus-exporter

二、创建 Prometheus 配置文件

创建一个名为 prometheus.yml 的配置文件,内容如下:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'nginx'
    static_configs:
      - targets: ['ip:9113']

这里,nginx-exporter:9113 是 Nginx Exporter 容器的默认地址和端口。如果你使用了其他端口或地址,请相应修改。

三、启动 Prometheus 容器

使用以下命令启动 Prometheus 容器,并将配置文件挂载到容器内部:

docker run -d --name prometheus \
    -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \
    -p 9090:9090 \
    prom/prometheus

如图就是成功了

image.png

四、启动 Grafana 容器

使用以下命令启动 Grafana 容器:

docker run -d --name grafana \
    -p 3000:3000 \
    grafana/grafana

五、启动 Nginx Exporter 容器

使用以下命令启动 Nginx Exporter 容器,并将 Nginx 的日志文件挂载到容器内部。假设你的 Nginx 日志文件路径是 /var/log/nginx/access.log

docker run -d --name nginx-exporter \
    -v /var/log/nginx:/var/log/nginx \
    -p 9113:9113 \
    nginx/nginx-prometheus-exporter

六、验证 Nginx Exporter 是否正常运行

访问 http://localhost:9113/metrics,检查是否可以看到 Nginx 的指标数据。如果可以正常访问,说明 Nginx Exporter 已经正确运行。

image.png

七、配置 Grafana

  1. 访问 Grafana Web 界面

    打开浏览器,访问 http://localhost:3000,使用默认用户名和密码 admin/admin 登录。

  2. 添加 Prometheus 数据源

    • 在 Grafana 的左侧菜单中,选择 Configuration > Data Sources
    • 点击 Add data source,选择 Prometheus
    • URL 字段中输入 http://ip:9090,切记不要使用localhost,会无法链接的。
    • 点击 Save & Test,确保连接成功。

image.png 3. 创建仪表盘

  • 在 Grafana 的左侧菜单中,选择 Create > Dashboard
  • 点击 Add new panel,选择 Prometheus 数据源。
  • 在查询框中输入 Prometheus 查询语句,例如:
    • rate(http_requests_total[1m]):显示每分钟的请求速率。
    • nginx_upstream_response_time:显示后端服务的响应时间。
  • 调整图表的显示样式,保存仪表盘。

八、确保 Nginx 日志文件路径正确

确保 Nginx 的日志文件路径 /var/log/nginx/access.log 是正确的。如果你的 Nginx 日志文件路径不同,请相应修改挂载路径。例如,如果你的 Nginx 日志文件路径是 /var/log/nginx/access.log,启动 Nginx Exporter 容器的命令应该是:

docker run -d --name nginx-exporter \
    -v /var/log/nginx:/var/log/nginx \
    -p 9113:9113 \
    nginx/nginx-prometheus-exporter

生成面板

image.png

复制json

image.png

最终效果

image.png

九、总结

通过以上步骤,你应该能够成功部署 Prometheus、Grafana 和 Nginx Exporter,并确保它们能够正确通信,从而实现对 Nginx 的实时监控。如果仍然遇到问题,请检查每个组件的日志,查找更详细的错误信息。

希望这些步骤能帮助你顺利部署和使用 Grafana + Prometheus 来监控 Nginx。