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

Prometheus + Grafana + Cadvisor:构建高效企业级服务监控体系

在现代软件开发和运维领域,容器化技术的应用越来越广泛,其中 Docker 作为最受欢迎的容器化解决方案之一,其容器的监控管理变得至关重要。本文将详细介绍如何使用 cadvisor、Prometheus 和 Grafana 来监控 Docker 容器的状态。

一、安装镜像

我们需要安装几个关键的镜像,这些镜像将帮助我们收集、存储和可视化容器及主机的相关数据。通常,我们会将 cadvisor 和 node - exporter 安装在被监控的主机上,而将 Prometheus 和 Grafana 安装在监控服务器上,不过它们也可以安装在同一台服务器上。

以下是具体的安装命令:

docker pull gcr.io/cadvisor/cadvisor:v0.49.1   # 收集并展示容器的资源使用和性能数据
docker pull prom/prometheus                    # 基于拉取模型收集指标数据,可以设置报警规则
docker pull grafana/grafana                    # 监控数据可视化
docker pull quay.io/prometheus/node-exporter   # 收集主机级别的系统指标

二、添加配置文件

在主机的根目录下,我们需要添加一个 prometheus.yml 文件,并进行如下配置:

global:scrape_interval: 15sevaluation_interval: 15sscrape_timeout: 10salerting:alertmanagers:- static_configs:- targets: ["alertmanager:9093"]rule_files:- "rules/*.rules"scrape_configs:- job_name: "prometheus"static_configs:- targets: ["localhost:9090"]labels:app: "prometheus"environment: "production"- job_name: "docker"  # 监控的docker容器static_configs:- targets: ["监控服务器IP地址或域名:8080"]labels:instance: "docker-host"environment: "production"- job_name: "linux"   # 监控的服务器主机static_configs:- targets: ["监控服务器IP地址或域名:9100"]labels:instance: "server-01"environment: "production"

这些配置项定义了 Prometheus 的全局设置、报警管理、规则文件以及要监控的目标。

三、Compose.yaml 文件编写

通过 docker-compose 来管理多个容器是一种非常便捷的方式。以下是 compose.yaml 文件的内容:

services:prometheus:container_name: prometheusimage: prom/prometheusrestart: unless-stoppednetworks:- 网络名称volumes:- /etc/prometheus.yml:/etc/prometheus/prometheus.yml- prometheus_data:/prometheusports:- "9090:9090"cadvisor:container_name: cadvisorimage: gcr.io/cadvisor/cadvisor:v0.49.1restart: unless-stoppedprivileged: truevolumes:- "/:/rootfs:ro"- "/var/run:/var/run:ro"- "/sys:/sys:ro"- "/var/lib/docker:/var/lib/docker:ro"- "/dev/disk:/dev/disk:ro"ports:- "8080:8080"grafana:container_name: grafanaimage: grafana/grafanarestart: unless-stoppednetworks:- 网络名称volumes:- grafana_data:/var/lib/grafanaports:- "3000:3000"node_exporter:container_name: node_exporterimage: quay.io/prometheus/node-exporter:latestports:- "9100:9100"command:- '--path.rootfs=/host'network_mode: hostpid: hostrestart: unless-stoppedvolumes:- '/:/host:ro,rslave'networks:网络名称:volumes:prometheus_data:grafana_data:

这个文件定义了各个服务的容器配置,包括镜像、重启策略、挂载卷、端口映射等。

四、Grafana 配置

(1)数据源配置

启动 Grafana 后,我们需要添加 Prometheus 作为数据源。在 Grafana 的界面中,按照提示添加 Prometheus 数据源,这将让 Grafana 能够从 Prometheus 中获取监控数据。

(2)仪表板配置

为了更直观地展示监控数据,我们可以在 Grafana 中导入预设的仪表板。在仪表板导入界面,输入仪表板 ID 193 和 9276。其中,193 是 Docker 容器监控模板,9276 是 Linux 主机监控模板。导入后,我们就可以清晰地看到 Docker 容器和 Linux 主机的各项监控指标。

通过以上步骤,我们就完成了 Docker 容器状态的监控系统搭建。利用 cadvisor 收集容器数据,Prometheus 存储和管理数据,Grafana 进行数据可视化,我们可以及时发现容器运行中的问题,保障系统的稳定运行。

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

相关文章:

  • WEBSTORM前端 —— 第3章:移动 Web —— 第2节:空间转换、转化
  • Java研学-MongoDB(一)
  • 【AI面试秘籍】| 第25期:RAG的关键痛点及解决方案深度解析
  • OpenGL、GLUT、freeGLUT 与 GLFW 的区别
  • 服务器带宽线路的区别(GIA、CN2、BGP、CMI等)
  • ppt一键制作:ai自动生成PPT,便捷高效超级精美!
  • 多方法解决MNIST数字识别
  • Maven(黑马)
  • CppCon 2014 学习:ODB, Advanced Weapons and Tactics
  • 将手机网络经USB数据线和本地局域网共享给华为AP6050DN无线接入点
  • 【论文解读】Deformable DETR | Deformable Transformers for End-to-End Object Detection
  • android 图片背景毛玻璃效果实现
  • 机器学习----决策树
  • LabVIEW输血袋字符智能检测系统
  • 数据结构测试模拟题(3)
  • 理解频域滤波
  • Telerik生态整合:Kendo UI for Angular组件在WinForms应用中的深度嵌入(一)
  • 古老的传说(Player、Stage)是否还能在蓝桥云课ROS中重现-250601(失败)
  • InfluxQL 数据分析实战:聚合、过滤与关联查询全解析
  • Qt font + ToolTip + focusPolicy + styleSheet属性(5)
  • APM32主控键盘全功能开发实战教程:软件部分
  • docker 部署 gin
  • 十三: 神经网络的学习
  • Qt OpenGL编程常用类
  • 数据结构 --- 顺序表
  • MySQL高级查询技巧:分组、聚合、子查询与分页【MySQL系列】
  • 无人机多旋翼倾转动力测试系统-适用于(eVTOL开发、缩比模型测试、科研教育)
  • .NET8入门:14.ASP.NET Core MVC进阶——Model
  • latex figure Missing number, treated as zero. <to be read again>
  • java CompletableFuture创建异步任务(Completable异步+ExecutorService线程池)