15 CIG重量级监控

目录

1. docker stats原生命令

2. CIG

CAdvisor

InfluxDB

Granfana

3. 安装部署

4. Grafana配置

4.1. 添加数据源

4.2. 添加工作台


grafana官网文档参考:Grafana documentation | Grafana documentation

influxdb官网文档参考:https://docs.influxdata.com/influxdb/v2/install/

cadvisor官网文档参考:https://github.com/google/cadvisor/blob/master/docs/running.md

1. docker stats原生命令

通过docker stats 命令可以很方便的查看当前宿主机上所有容器的CPU、内存、网络流量等数据,可以满足一些小型应用。

但是 docker stats 统计结果只能是当前宿主机的全部容器,数据资料是实时的,没有地方存储、没有健康指标过线预警等功能。

2. CIG

CAdvisor(监控收集) + InfluxDB(存储数据) + Granfana(展示图表),合称 CIG

  1. CAdvisor 运行在每个 Docker 主机上,监控所有容器并收集资源使用数据。
  2. CAdvisor 将收集到的数据推送到 InfluxDB,作为时间序列数据进行存储和管理。
  3. GrafanaInfluxDB 中读取时间序列数据,并以可视化图表的形式展示在自定义的仪表盘上,供用户进行监控和分析

CAdvisor

CAdvisor (Container Advisor) 是一个容器资源监控工具

作用:

  • 容器监控:CAdvisor 是一个用于收集、处理、聚合和导出运行中的容器资源使用和性能信息的工具。它能够自动发现容器,并收集 CPU、内存、网络和文件系统使用数据。
  • 实时监控:提供实时监控功能,能够详细展示每个容器的资源消耗情况,帮助识别性能瓶颈和资源利用情况。
  • 数据导出:能够将收集的数据导出到多种存储后端,如 InfluxDB、Prometheus 等,便于进一步分析和可视化。

工作原理:

  • CAdvisor 运行在每个主机上,监控所有在该主机上运行的容器,通过 Docker API 获取容器的资源使用数据。
  • 它能够以 JSON 格式导出这些数据,或者将数据直接推送到指定的存储后端。

CAdvisor默认存储2分钟的数据,而且只是针对单物理机。不过CAdvisor提供了很多数据集成接口,支持 InfluxDB、Redis、Kafka、Elasticsearch等集成,可以加上对应配置将监控数据发往这些数据库存储起来。


CAdvisor主要功能:

  • 展示Host和容器两个层次的监控数据
  • 展示历史变化数据

InfluxDB

InfluxDB是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。

CAdvisor默认只在本机保存2分钟的数据,为了持久化存储数据和统一收集展示监控数据,需要将数据存储到InfluxDB中。InfluxDB是一个时序数据库,专门用于存储时序相关数据,很适合存储 CAdvisor 的数据。而且 CAdvisor本身已经提供了InfluxDB的集成方法,在启动容器时指定配置即可。

InfluxDB主要功能:

  • 基于时间序列,支持与时间有关的相关函数(如最大、最小、求和等)
  • 可度量性,可以实时对大量数据进行计算
  • 基于事件,支持任意的事件数据

Granfana

官网:Grafana: The open observability platform | Grafana Labs

grafana + influxdb使用:InfluxDB data source | Grafana documentation

Grafana是一个开源的数据监控分析可视化平台,支持多种数据源配置(支持的数据源包括InfluxDB、MySQL、Elasticsearch、OpenTSDB、Graphite等)和丰富的插件及模板功能,支持图表权限控制和报警。

  • 数据可视化:Grafana 是一个开源的分析和监控平台,能够将 InfluxDB 等数据库中的时间序列数据进行可视化。它支持多种图表类型,如折线图、柱状图、热力图等。
  • 仪表盘管理:用户可以创建和管理自定义的仪表盘,展示关键的性能指标和监控数据,便于实时监控和分析系统状态。
  • 告警系统:Grafana 支持配置告警规则,当监控指标超出设定的阈值时,会自动触发告警通知用户。

Granfana主要功能:

  • 灵活丰富的图形化选项
  • 可以混合多种风格
  • 支持白天和夜间模式
  • 多个数据源

3. 安装部署

参考:How to setup Docker Monitoring

📎如何设置 CIG重量级 Docker 监控 .html

  1. 编写docker-compose.yml服务编排文件

ps:使用的tutum/influxdb 相比influxdb多了web可视化视图。但是该镜像已被标记为已过时

新版的1.X 2.X版本的需要查看官网链接编写对应的yml文件(部分不能照搬,某些初始化变量已经失效)

volumes:
   grafana_data: {} #{}使用默认设置创建卷

networks:
   CIG_net: {}

services:
  influxdb:
     image: tutum/influxdb
     container_name: influxdb
     restart: always
     environment:
        - PRE_CREATE_DB=cadvisor
     ports:
        - "8083:8083"
        - "8086:8086"
     volumes:
        - ./data/influxdb:/data
     networks:
        - CIG_net
 #-------------------------------------------------------------------------------------------------------
  cadvisor:
     image: gcr.io/cadvisor/cadvisor
     container_name: cadvisor
     command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086
     restart: always
     ports:
        - "8080:8080"
     volumes:
        - /:/rootfs:ro
        - /var/run:/var/run:rw
        - /sys:/sys:ro
        - /var/lib/docker/:/var/lib/docker:ro
        - /sys/fs/cgroup:/sys/fs/cgroup:ro
     networks:
        - CIG_net
  #--------------------------------------------------------------------------------------------------------
  grafana:
     image: grafana/grafana:latest
     container_name: grafana
     user: "104"
     restart: always
     ports:
        - "3000:3000"
     volumes:
        - grafana_data:/var/lib/grafana
     environment:
        - HTTP_USER=admin
        - HTTP_PASS=admin
        - INFLUXDB_HOST=influxdb
        - INFLUXDB_PORT=8086
        - INFLUXDB_NAME=cadvisor
        - INFLUXDB_USER=root
        - INFLUXDB_PASS=root
     networks:
        - CIG_net
2.检查语法:docker-compose config -q
3.创建并启动容器 docker-compose up -d

安装过程中遇见的问题及解决过程:

无法找到 CPU 的挂载点

换最新的镜像,gcr.io/cadvisor/cadvisor

重新启动 docker-compose up -d


浏览浏览cAdvisor收集服务,http://ip:8080

cadvisor也有基础的图形展现功能,这里主要用它来作数据采集

浏览influxdb存储服务,http://ip:8083/ ,检查我们初始化的数据库cadvisor

浏览grafana,默认账户密码 admin admin

4. Grafana配置

4.1. 添加数据源

关于如何添加源,grafana给出不同influxdb的参考教程InfluxDB data source | Grafana documentation

Configuration(小齿轮)选项卡中,选择Data Sources,添加一个InfluxDB数据源:

  • name:自定义一个数据源名称,例如InfluxDB
  • Query Language:查询语言,默认InfluxQL即可
  • URL:根据compose中的容器服务名连接,http://influxdb:8086
  • database:我们在InfluxDB中创建的数据库实例,cadvisor
  • User:InfluxDB的默认用户,root
  • Password:root

保存并测试

4.2. 添加工作台

  1. Create(加号)选项卡中,选择创建 Dash Board工作台。右上角配置中可以配置创建出来的工作台的标题、文件夹等信息。
  2. 在创建出来的工作台中,选择Add panel中的Add a new panel添加一个新的面板。
    1. 在右上角Time series(时序图)位置可以切换展示的图表样式(柱状图、仪表盘、表格、饼图等等)
    2. 右侧边栏为该图表配置相关信息:标题、描述
    3. 图表下方可以配置该图表展示的数据的查询语句,例如:
      • FROM:cpu_usage_total(Grafana会自动获取InfluxDB数据库中的元数据,可以直接选择对应表名)
      • WHERE:添加一个条件,container_name=cadvisor_v1
      • ALIAS:配置一个别名,CPU使用情况汇总

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/786310.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

拨开迷雾,寻找大模型应用落地的支点

自主可控大模型底座个性化刚需场景,这家大模型公司率先趟出一条个性化发展路径。 作者 | 辰纹 来源 | 洞见新研社 上海的温度很高,接近40度,比上海温度更高的是AI的热度。 7月4日,2024世界人工智能大会暨人工智能全球治理高…

tapd项目管理由完全免费的工具向付费工具转变

TAPD从2022年左右开始面由一个完全免费的工具向付费工具转变。从最新政策看,TAPD 针对不同规模和需求的团队,TAPD提供了多种版本,其中包括“卓越版”和“企业版”。免费版本人数规模由原来的100人不断缩小,2024年仅支持30人以内免…

Java-Redis-Clickhouse-Jenkins-MybatisPlus-Zookeeper-vscode-Docker-jdbc

文章目录 Clickhouse基础实操windows docker desktop 下载clickhousespringboot项目配置clickhouse Redis谈下你对Redis的了解?Redis一般都有哪些使用的场景?Redis有哪些常见的功能?Redis支持的数据类型有哪些?Redis为什么这么快…

科普文:深入理解负载均衡(四层负载均衡、七层负载均衡)

概叙 网络模型:OSI七层模型、TCP/IP四层模型、现实的五层模型 应用层:对软件提供接口以使程序能使用网络服务,如事务处理程序、文件传送协议和网络管理等。(HTTP、Telnet、FTP、SMTP) 表示层:程序和网络之…

循环练习题

代码&#xff1a; public static void main(String[] args) { for (char c1a;c1<z;c1){System.out.print(" "c1); }System.out.println();for (char c2Z;c2>A;c2--){System.out.print(" "c2);}} 结果为&#xff1a;

二. Linux内核

一. Linux内核源码目录分析 arch 包含与体系结构相关的代码&#xff0c;用于支持不同硬件体系结构的实现。这个目录下会根据不同的架构&#xff08;如x86、arm、mips等&#xff09;进一步细分。 block 用于处理块设备的子系统&#xff0c;包含与块设备驱动和I/O调度相关的代码。…

HTML(29)——立体呈现

作用&#xff1a;设置元素的子元素是位于3D空间中还是平面中 属性名&#xff1a;transform-style 属性值&#xff1a; flat&#xff1a;子级处于平面中preserve-3d:子级处于3D空间 步骤&#xff1a; 父级元素添加 transform-style:preserve-3d 子级定位调整子盒子的位置&a…

高智能土壤养分检测仪:农业生产的科技新助力

在科技日新月异的今天&#xff0c;农业领域也迎来了革命性的变革。其中&#xff0c;高智能土壤养分检测仪作为现代农业的科技新助力&#xff0c;正逐渐改变着传统的农业生产方式&#xff0c;为农民带来了前所未有的便利与效益。 高智能土壤养分检测仪&#xff0c;是一款集高科技…

PMON的解读和开发

提示&#xff1a;龙芯2K1000PMON相关记录 文章目录 1 PMON的发展和编译环境PMONPMON2000 2 PMON2000的目录结构3 Targets目录的组成4 PMON编译环境的建立5 PMON2000的框架6 异常向量表7 Pmon的空间分配8 PMON的汇编部分(starto.S或sbdreset.S)的解读Start.SC代码部分dbginit 9 …

为什么要参加学术会议?

为什么要参加学术会议&#xff1f; 学术会议是一种以促进科学发展、学术交流、课题研究等学术性话题为主题的会议。学术会议一般都具有国际性、权威性、高知识性、高互动性等特点&#xff0c;其参会者一般为科学家、学者、教师等具有高学历的研究人员。下面苏老师就跟大家详细…

92. 反转链表 II (Swift 版本)

题目描述 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 分析 这是一个经典的链表问题&#xff0c;要求反转链表的部分节点。我们可以通过以下步骤实…

Linux -- 认识gcc/g++、代码的编译过程

目录 前言&#xff1a; 使用 gcc/g&#xff1a; 代码的编译过程&#xff1a; 预处理&#xff1a; 头文件展开&#xff1a; 宏替换去注释&#xff1a; ​编辑 条件编译&#xff1a; 编译&#xff1a; 汇编&#xff1a; 链接&#xff1a; 动态库&#xff08;动态链…

高速公路事故检测数据集点亮智能交通:视频动作识别的崭新征程(目标检测)

亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 引言 …

spring tx @Transactional 详解 `Advisor`、`Target`、`ProxyFactory

在Spring中&#xff0c;Transactional注解的处理涉及到多个关键组件&#xff0c;包括Advisor、Target、ProxyFactory等。下面是详细的解析和代码示例&#xff0c;解释这些组件是如何协同工作的。 1. 关键组件介绍 1.1 Advisor Advisor是一个Spring AOP的概念&#xff0c;它包…

射频硅基氮化镓:两个世界的最佳选择

当世界继续努力追求更高速的连接&#xff0c;并要求低延迟和高可靠性时&#xff0c;信息通信技术的能耗继续飙升。这些市场需求不仅将5G带到许多关键应用上&#xff0c;还对能源效率和性能提出了限制。5G网络性能目标对基础半导体器件提出了一系列新的要求&#xff0c;增加了对…

如何使用ParaView可视化工具来绘制点云数据的3D点云图像(亲测好用)

如何使用ParaView来绘制点云数据。以下是如何将你的数据导入ParaView并进行可视化的步骤 一、准备数据 首先&#xff0c;你需要将你的数据转换为ParaView可以读取的格式。ParaView支持多种文件格式&#xff0c;其中最常见的是.vtk和.csv格式。为了简单起见&#xff0c;这里我…

JFlash读取和烧录加密stm32程序

JFlash读取和烧录加密stm32程序 安装后JFlash所在的目录&#xff1a;C:\Program Files\SEGGER\JLink 一、烧写加密程序 1、打开C:\Program Files\SEGGER\JLink目录&#xff0c;找到JFlash.exe,双击它&#xff0c;就可以打开该执行程序。见下图&#xff1a; 2、选择“Create …

华为eNSP:HCIA综合实验

一实验要求 HCIA综合实验的配置要求&#xff1a; 1.ISP路由器只能配置IP地址&#xff0c;之后不进行任何配置 2.内部整个网络基于192.168.1.0/24进行地址划分 3.R1/2之间启动OSPF协议&#xff0c;单区域 4.PC1-4自动获取IP地址 5.PC1-4&#xff0c;可以访问PC5&#xff0c;R2…

布隆过滤器 redis

一.为什么要用到布隆过滤器&#xff1f; 缓存穿透&#xff1a;查询一条不存在的数据&#xff0c;缓存中没有&#xff0c;则每次请求都打到数据库中&#xff0c;导致数据库瞬时请求压力过大&#xff0c;多见于爬虫恶性攻击因为布隆过滤器是二进制的数组&#xff0c;如果使用了它…

9.2 栅格图层符号化单波段灰度渲染

文章目录 前言单波段灰度QGis设置为单波段灰度二次开发代码实现单波段灰度 总结 前言 介绍栅格图层数据渲染之单波段灰度显示说明&#xff1a;文章中的示例代码均来自开源项目qgis_cpp_api_apps 单波段灰度 以“3420C_2010_327_RGB_LATLNG.tif”数据为例&#xff0c;在QGis中…