当前位置: 首页 > 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 进行数据可视化,我们可以及时发现容器运行中的问题,保障系统的稳定运行。

相关文章:

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

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

WEBSTORM前端 —— 第3章:移动 Web —— 第2节:空间转换、转化

目录 一、空间转换 1.空间转换 2.空间转换 – 平移 3.视距 perspective 4.空间 – 旋转 ③空间旋转——Z轴代码与效果视频 ④空间旋转——X轴代码与效果视频 ⑤空间旋转——Y轴代码与效果视频 5.立体呈现 – transform-style 案例 – 3D 导航 6.空间转换 – 缩放 …...

Java研学-MongoDB(一)

一 MongoDB 简介 MongoDB是一种高性能、开源的NoSQL数据库,采用面向文档的存储模型,以BSON(Binary JSON)格式存储数据,具有灵活的数据模型、强大的扩展性和丰富的功能特性,广泛应用于各类现代应用程序的数据…...

【AI面试秘籍】| 第25期:RAG的关键痛点及解决方案深度解析

今天我们来聊聊大模型领域一个非常火热的技术——RAG(Retrieval Augmented Generation)。RAG通过引入外部知识库,有效地缓解了大型语言模型(LLM)在处理知识密集型任务时可能出现的幻觉、知识过时等问题。然而&#xff…...

OpenGL、GLUT、freeGLUT 与 GLFW 的区别

在图形编程中,OpenGL 是最核心的渲染 API,但仅靠它本身无法完成窗口创建、事件处理等任务。因此,开发者通常会借助一些辅助库来简化开发流程。常见的库包括 GLUT、freeGLUT 和 GLFW。 本文将详细讲解这些技术之间的区别,并提供每…...

服务器带宽线路的区别(GIA、CN2、BGP、CMI等)

服务器带宽线路的区别(GIA、CN2、BGP、CMI等) 一、BGP线路 1. 定义与技术特点 BGP(Border Gateway Protocol,边界网关协议)是一种用于不同自治系统(AS)之间交换路由信息的协议,属…...

ppt一键制作:ai自动生成PPT,便捷高效超级精美!

深夜的台灯下,你对着杂乱的 PPT 内容反复刷新灵感,鼠标在字体、配色选项间来回穿梭,好不容易拼凑出的页面,却总透着浓浓的 “廉价感”;汇报在即,逻辑混乱的大纲改了又改,每一页感觉合适又不搭&a…...

多方法解决MNIST数字识别

全连接层 import torch from torchvision import datasets, transforms import torch.nn as nn import torch.optim as optim from tqdm import tqdm # 用于进度条显示 import os# 定义数据预处理(标准化+Tensor转换) transform = transforms.Compose([transforms.ToTensor…...

Maven(黑马)

Maven 是一个强大的项目管理和构建自动化工具,主要用于 Java 项目的构建、依赖管理和文档生成。它通过使用 POM(Project Object Model)文件来管理项目的配置和依赖关系,从而实现项目的自动化构建和管理。以下是 Maven 的一些核心概…...

CppCon 2014 学习:ODB, Advanced Weapons and Tactics

#Schema Evolution 是数据库持久化技术中的一个重要概念,特别是在使用像 ODB 这样的 C ORM 框架时。 展示的代码片段正是 ODB 支持的**模式演化(Schema Evolution)**语法示例。 什么是 Schema Evolution? Schema Evolution 指的…...

将手机网络经USB数据线和本地局域网共享给华为AP6050DN无线接入点

引言 由于最近装毕的新家所在的小区未能及时通宽带,于是家中各类无线设备如何上网就成了首要要解决的问题。 鉴于家中要联网的设备多、类型杂、支持频段也不一,总是开手机热点不是回事儿,于是就想着把手机网络引至华为AP6050DN无线接入点中,让家中所有的无线设备都能快速高…...

【论文解读】Deformable DETR | Deformable Transformers for End-to-End Object Detection

论文地址:https://arxiv.org/pdf/2010.04159 代码地址:https://github.com/fundamentalvision/Deformable-DETR 摘要 DETR最近被提出,旨在消除物体检测中许多手工设计的组件的需求,同时展示出良好的性能。然而,由于T…...

android 图片背景毛玻璃效果实现

图片背景毛玻璃效果实现 1 依赖 // Glide implementation("com.github.bumptech.glide:glide:4.16.0") kapt("com.github.bumptech.glide:compiler:4.16.0") implementation("jp.wasabeef:glide-transformations:4.3.0") 2 布局<com.googl…...

机器学习----决策树

一、决策树简介 from sklearn.tree import DecisionTreeClassifier from sklearn.tree import plot_tree 决策树是一种树形结构&#xff0c;树中每个内部节点表示一个特征上的判断&#xff0c;每个分支代表一个判断结果的输出&#xff0c;每个叶子节点代表一种分类结果。 决…...

LabVIEW输血袋字符智能检测系统

针对医疗行业输血袋字符检测需求&#xff0c;基于 LabVIEW 图形化开发平台与基恩士&#xff08;KEYENCE&#xff09;机器视觉硬件&#xff0c;构建高精度、高可靠性的字符在线识别系统。通过选用基恩士工业相机、光源及 NI 数据采集设备等硬件&#xff0c;结合 LabVIEW 强大的图…...

数据结构测试模拟题(3)

1、两个有序链表序列的合并 #include<bits/stdc.h> using namespace std;struct node{int num;node* next; };// 创建链表 node* CreatList(){int x;node *head new node(); // 创建头节点head->next NULL;node *tail head; // 尾指针初始指向头节点while…...

理解频域滤波

1 频域滤波基础 对一幅数字图像&#xff0c;基本的频率滤波操作包括&#xff1a; 1&#xff09;将图像变换到频率域&#xff1b; 2&#xff09;根据需要修改频率域数值&#xff1b; 3&#xff09;反变换到图像域。 使用公式表达为 &#xff0c; H(u,v) 为滤波器&#xff08;滤…...

Telerik生态整合:Kendo UI for Angular组件在WinForms应用中的深度嵌入(一)

Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库&#xff0c;加快开发速度。Telerik DevCraft提供完整的工具箱&#xff0c;用于构建现代和面向未来的业务应用程序&#xff0c;目前提供UI for ASP.NET MVC、Kendo…...

古老的传说(Player、Stage)是否还能在蓝桥云课ROS中重现-250601(失败)

古老的传说是否还能在蓝桥云课ROS中重现-250601 经典复现何其难&#xff0c;百分之二就凉凉&#xff01; 古老的传说 那是很久很久以前的故事……上个世纪的一个机器人项目 Player、Stage这个项目最早起源于1999年&#xff0c;由美国南加州大学机器人研究实验室开发&#xff0…...

InfluxQL 数据分析实战:聚合、过滤与关联查询全解析

InfluxQL 作为时序数据库的专用查询语言&#xff0c;在处理时间序列数据时展现出独特优势。本文深入探讨 聚合计算、数据过滤和跨测量关联 三大核心操作&#xff0c;通过真实代码示例展示如何从海量时序数据中提取关键洞察。文中涵盖从基础平均值计算到复杂多维度分析的完整流程…...

Qt font + ToolTip + focusPolicy + styleSheet属性(5)

文章目录 font属性API接口直接在Qt Designer编辑图形化界面通过纯代码的方式修改文字属性 ToolTip属性API接口代码演示 focusPolicy属性概念理解API接口通过编辑图形化界面演示 styleSheet属性概念理解通过编辑图形化界面展示代码 图形化界面的方式展示&#xff08;夜间/日间模…...

APM32主控键盘全功能开发实战教程:软件部分

APM32主控键盘全功能开发实战教程&#xff1a;从零基础到RGB矩阵高级玩法 &#x1f525; 前言&#xff1a;随着机械键盘DIY风潮兴起&#xff0c;国产APM32芯片因其高性价比和与STM32的完美兼容性&#xff0c;正逐渐成为键盘开发主控的新宠。本文将手把手带你从最基础的环境搭建…...

docker 部署 gin

编译与执行 ✅「静态编译语言 生成原生二进制文件 操作系统直接执行」 Go 语言之所以在工程部署场景中大受欢迎的核心优势&#xff1a;它直接编译成原生二进制可执行文件&#xff08;binary executable&#xff09;。 &#x1f527; Go 是“静态编译语言”&#xff08;编译型…...

十三: 神经网络的学习

这里所说的“学习”是指从训练数据中自动获取最优权重参数的过程。为了使神经网络能进行学习&#xff0c;将导入损失函数这一指标。而学习的目的就是以该损失函数为基准&#xff0c;找出能使它的值达到最小的权重参数。为了找出尽可能小的损失函数的值&#xff0c;我们将介绍利…...

Qt OpenGL编程常用类

Qt提供了丰富的类来支持OpenGL编程,以下是常用的Qt OpenGL相关类: 一、QOpenGLWidget 功能:用于在 Qt 应用程序中嵌入 OpenGL 渲染的窗口部件。替代了旧版的QGLWidget。提供了OpenGL上下文和渲染表面。 继承关系:QWidget → QOpenGLWidget 属性与方法: QOpenGLWidget 属…...

数据结构 --- 顺序表

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下采用数组存储&#xff0c;在数组上完成数据的增删查改 顺序表分为&#xff1a;静态顺序表、动态顺序表 一.静态顺序表 #define N 7 typedef int SLDataType;typedef struct Seqlist {…...

MySQL高级查询技巧:分组、聚合、子查询与分页【MySQL系列】

本文将深入探讨 MySQL 高级查询技巧&#xff0c;重点讲解 GROUP BY、HAVING、各种聚合函数、子查询以及分页查询&#xff08;LIMIT 语法&#xff09;的使用。文章内容涵盖实际应用中最常见的报表需求和分页实现技巧&#xff0c;适合有一定 SQL 基础的开发者进一步提升技能。 一…...

无人机多旋翼倾转动力测试系统-适用于(eVTOL开发、缩比模型测试、科研教育)

在倾转旋翼无人机、垂直起降&#xff08;VTOL&#xff09;及混合动力飞行器的研发中&#xff0c;动力系统在垂直-水平模式切换时的动态性能至关重要。LY-QZ-F4多旋翼倾转动力测试系统是全球首款专为倾转四旋翼设计的多自由度动力测试平台&#xff0c;融合高精度传感、动态倾转模…...

.NET8入门:14.ASP.NET Core MVC进阶——Model

上一篇文章我们了解了一下MVC在ASP.NET8中的一些基础概念&#xff0c;接下来深入了解一下ASP.NET Core MVC中Model的一些特性和用法。 Model 职责 Model 代表应用程序的核心数据和业务逻辑部分。它负责&#xff1a; 封装业务数据&#xff1a;表示应用程序中的实体&#xff0c;…...

latex figure Missing number, treated as zero. <to be read again>

\begin{figure}[h] \centering \includegraphics[width\linewidth]{pictures/architecture.pdf} \caption{Typical architecture.} \label{fig:architecture} \end{figure}&#xff0c; 我在编译latex&#xff0c;这段代码报错&#xff0c; Missing number, treated …...