【监控】【Nginx】使用 Docker 摆设 Prometheus + Grafana 监控 Nginx ...

打印 上一主题 下一主题

主题 1036|帖子 1036|积分 3108

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在现代应用程序中,监控是确保服务高可用性和性能的关键。本文将具体介绍如何使用 Docker 摆设 Prometheus 和 Grafana,以监控 Nginx。我们将分步骤讲授每个环节,以确保你能够顺遂完成整个过程。
准备工作

在开始之前,请确保你的体系上已安装 Docker 和 Docker Compose。这两个工具将资助我们轻松创建和管理容器化的应用情况。
步骤 1:创建项目目录

首先,我们需要创建一个新的目录来存放全部设置文件。这有助于保持项目标结构清楚。
  1. mkdir nginx-monitoring
  2. cd nginx-monitoring
复制代码
步骤 2:创建 Prometheus 设置文件

接下来,创建一个名为 prometheus.yml 的文件,这是 Prometheus 的设置文件,界说了监控的目标和抓取隔断。
  1. global:
  2.   scrape_interval: 15s  # 设置全局抓取间隔为15秒
  3. scrape_configs:
  4.   - job_name: 'nginx'  # 监控任务的名称
  5.     static_configs:
  6.       - targets: ['nginx:80']  # 指定 Nginx 服务的名称和端口
复制代码
解释



  • global:界说全局设置,如抓取隔断。
  • scrape_configs:设置要监控的服务,这里我们将 Nginx 的指标作为目标。
步骤 3:创建 Docker Compose 文件

然后,创建一个 docker-compose.yml 文件,界说我们需要的服务,包罗 Nginx、Prometheus 和 Grafana。
  1. version: '3.7'  # Docker Compose 文件版本
  2. services:
  3.   nginx:
  4.     image: nginx:latest  # 使用最新的 Nginx 镜像
  5.     ports:
  6.       - "8080:80"  # 将宿主机的8080端口映射到容器的80端口
  7.     volumes:
  8.       - ./nginx.conf:/etc/nginx/nginx.conf  # 自定义 Nginx 配置文件
  9.   prometheus:
  10.     image: prom/prometheus  # 使用 Prometheus 镜像
  11.     ports:
  12.       - "9090:9090"  # 将宿主机的9090端口映射到容器的9090端口
  13.     volumes:
  14.       - ./prometheus.yml:/etc/prometheus/prometheus.yml  # 挂载 Prometheus 配置文件
  15.     command:
  16.       - '--config.file=/etc/prometheus/prometheus.yml'  # 指定配置文件位置
  17.   grafana:
  18.     image: grafana/grafana  # 使用 Grafana 镜像
  19.     ports:
  20.       - "3000:3000"  # 将宿主机的3000端口映射到容器的3000端口
复制代码
解释



  • services:界说我们要运行的服务。
  • image:指定要使用的 Docker 镜像。
  • ports:设置端口映射,使得我们可以从宿主机访问容器中的服务。
  • volumes:挂载设置文件到容器,以便于管理。
步骤 4:创建 Nginx 设置文件

在项目目录中创建一个 nginx.conf 文件,以设置 Nginx 的指标导出。
  1. worker_processes 1;  # 设置工作进程数
  2. events {
  3.     worker_connections 1024;  # 最大连接数
  4. }
  5. http {
  6.     server {
  7.         listen 80;  # Nginx 监听80端口
  8.         location / {
  9.             root   /usr/share/nginx/html;  # 静态文件根目录
  10.             index  index.html index.htm;  # 默认首页
  11.         }
  12.         location /metrics {
  13.             stub_status on;  # 启用 stub_status 模块以导出指标
  14.         }
  15.     }
  16. }
复制代码
解释



  • worker_processes 和 events:基本的 Nginx 设置。
  • location /metrics:指定一个路径用于导出 Nginx 的指标。
步骤 5:启动 Docker 容器

在项目目录中运行以下下令以启动服务:
  1. docker-compose up -d  # 后台运行 Docker 容器
复制代码
解释



  • -d 选项使得容器在背景运行,便于继承在终端中执行其他下令。
步骤 6:访问 Grafana 和 Prometheus

服务启动后,我们可以访问 Grafana 和 Prometheus。


  • Grafana:在浏览器中访问 http://localhost:3000。默认的用户名和密码都是 admin/admin,首次登录时体系会提示你更改密码。
  • Prometheus:在浏览器中访问 http://localhost:9090,可以查看抓取的指标。
步骤 7:设置 Grafana 数据源


  • 登录到 Grafana。
  • 点击左侧菜单中的“设置”图标,然后选择“数据源”。
  • 点击“添加数据源”按钮,选择 Prometheus。
  • 在 URL 字段中输入 http://prometheus:9090(这是 Docker 内部网络中使用的服务名称)。
  • 点击“生存并测试”以确认连接乐成。
解释

这一步骤确保 Grafana 可以精确连接到 Prometheus,获取监控数据。
步骤 8:创建仪表板


  • 点击左侧菜单中的“仪表板”图标,然后选择“新建仪表板”。
  • 点击“添加图表”,选择数据源为刚刚添加的 Prometheus。
  • 在查询框中输入指标,例如 nginx_http_requests_total 来查看总哀求数。
  • 自界说图表样式,生存仪表板。
解释

通过创建仪表板,你可以可视化 Nginx 的性能数据,资助你更好地明白服务的运行状态。
结论

通过 Docker 摆设 Prometheus 和 Grafana,你可以方便地监控 Nginx。这一解决方案不仅简单易用,还能根据需要灵活扩展。希望这篇博客对你有所资助,助你乐成构建一个强大的监控体系!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王海鱼

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表