当前位置: 首页 > news >正文

【监控】【Nginx】使用 Docker 部署 Prometheus + Grafana 监控 Nginx

在现代应用程序中,监控是确保服务高可用性和性能的关键。本文将详细介绍如何使用 Docker 部署 Prometheus 和 Grafana,以监控 Nginx。我们将分步骤讲解每个环节,以确保你能够顺利完成整个过程。

准备工作

在开始之前,请确保你的系统上已安装 Docker 和 Docker Compose。这两个工具将帮助我们轻松创建和管理容器化的应用环境。

步骤 1:创建项目目录

首先,我们需要创建一个新的目录来存放所有配置文件。这有助于保持项目的结构清晰。

mkdir nginx-monitoring
cd nginx-monitoring

步骤 2:创建 Prometheus 配置文件

接下来,创建一个名为 prometheus.yml 的文件,这是 Prometheus 的配置文件,定义了监控的目标和抓取间隔。

global:scrape_interval: 15s  # 设置全局抓取间隔为15秒scrape_configs:- job_name: 'nginx'  # 监控任务的名称static_configs:- targets: ['nginx:80']  # 指定 Nginx 服务的名称和端口

解释

  • global:定义全局配置,如抓取间隔。
  • scrape_configs:配置要监控的服务,这里我们将 Nginx 的指标作为目标。

步骤 3:创建 Docker Compose 文件

然后,创建一个 docker-compose.yml 文件,定义我们需要的服务,包括 Nginx、Prometheus 和 Grafana。

version: '3.7'  # Docker Compose 文件版本services:nginx:image: nginx:latest  # 使用最新的 Nginx 镜像ports:- "8080:80"  # 将宿主机的8080端口映射到容器的80端口volumes:- ./nginx.conf:/etc/nginx/nginx.conf  # 自定义 Nginx 配置文件prometheus:image: prom/prometheus  # 使用 Prometheus 镜像ports:- "9090:9090"  # 将宿主机的9090端口映射到容器的9090端口volumes:- ./prometheus.yml:/etc/prometheus/prometheus.yml  # 挂载 Prometheus 配置文件command:- '--config.file=/etc/prometheus/prometheus.yml'  # 指定配置文件位置grafana:image: grafana/grafana  # 使用 Grafana 镜像ports:- "3000:3000"  # 将宿主机的3000端口映射到容器的3000端口

解释

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

步骤 4:创建 Nginx 配置文件

在项目目录中创建一个 nginx.conf 文件,以设置 Nginx 的指标导出。

worker_processes 1;  # 设置工作进程数events { worker_connections 1024;  # 最大连接数
}http {server {listen 80;  # Nginx 监听80端口location / {root   /usr/share/nginx/html;  # 静态文件根目录index  index.html index.htm;  # 默认首页}location /metrics {stub_status on;  # 启用 stub_status 模块以导出指标}}
}

解释

  • worker_processesevents:基本的 Nginx 配置。
  • location /metrics:指定一个路径用于导出 Nginx 的指标。

步骤 5:启动 Docker 容器

在项目目录中运行以下命令以启动服务:

docker-compose up -d  # 后台运行 Docker 容器

解释

  • -d 选项使得容器在后台运行,便于继续在终端中执行其他命令。

步骤 6:访问 Grafana 和 Prometheus

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

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

步骤 7:配置 Grafana 数据源

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

解释

这一步骤确保 Grafana 可以正确连接到 Prometheus,获取监控数据。

步骤 8:创建仪表板

  1. 点击左侧菜单中的“仪表板”图标,然后选择“新建仪表板”。
  2. 点击“添加图表”,选择数据源为刚刚添加的 Prometheus。
  3. 在查询框中输入指标,例如 nginx_http_requests_total 来查看总请求数。
  4. 自定义图表样式,保存仪表板。

解释

通过创建仪表板,你可以可视化 Nginx 的性能数据,帮助你更好地理解服务的运行状态。

结论

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


http://www.lryc.cn/news/444263.html

相关文章:

  • Vue3 + Vite Web项目 Electron 打包桌面应用程序
  • Linux:login shell和non-login shell以及其配置文件
  • 面试速通宝典——1
  • 用uniapp 及socket.io做一个简单聊天 升级 9
  • 【Unity Shader】Special Effects(九)Vortex 旋涡(UI)
  • 01_两数之和
  • ChatGLM-6B-部署与使用
  • 李宏毅结构化学习 03
  • java重点学习-总结
  • 文件操作
  • docker存储
  • Ubuntu20.04.6 环境下docker设置proxy
  • 如何给文件夹里面的文件批量添加前缀和编号(利用C#写的小工具)
  • 使用分布式调度框架时需要考虑的问题——详解
  • C语言编译四大阶段
  • C# 关于“您与该网站的连接不是私密连接...”的问题
  • 【超详细】基于YOLOv8训练无人机视角Visdrone2019数据集
  • VUE项目在Linux子系统部署
  • 开源 | 如何在产品上扩展大储存?合宙LuatOS外挂SPI Flash库轻松搞定
  • 20 基于STM32的温度、电流、电压检测proteus仿真系统(OLED、DHT11、继电器、电机)
  • spring自定义属性编辑器
  • 在VMware16中安装Windows 10:完整教程
  • MATLAB系列09:图形句柄
  • 把设计模式用起来!(4) 用不好模式?之原理不明
  • 安卓13去掉下拉菜单的Dump SysUI 堆的选项 android13删除Dump SysUI 堆
  • vue3常用的组件间通信
  • Windows 查找特定进程的ID并杀死
  • Snapchat API 访问:Objective-C 实现示例
  • ps证件照蓝底换白底
  • 阿里云kafka消息写入topic失败