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

cAdvisor 容器监控软件学习

一、cAdvisor 介绍

cAdvisor 官网地址:
https://github.com/google/cadvisor

cAdvisor(Container Advisor)官网 介绍:

cAdvisor(容器顾问)为容器用户提供对其运行容器的资源使用情况和性能特征的理解。它是一个运行的守护进程,收集、聚合、处理和导出有关运行容器的信息。具体来说,对于每个容器,它保持资源隔离参数、历史资源使用情况、完整历史资源使用情况的直方图和网络统计数据。这些数据按容器和全局机器导出。

cAdvisor 对 Docker 容器提供原生支持,应该可以开箱即用地支持几乎所有其他容器类型。我们致力于全面支持,如果情况并非如此,请随时打开一个问题。cAdvisor 的容器抽象基于 lmctfy,因此容器本质上具有嵌套的层次结构。

cAdvisor还可以导出容器监控指标提供给promethus

二、cAdvisor 部署

1. 使用docker部署

cAdvisor 提供了开箱即用的docker镜像,下来将使用多个系统来部署cAdvisor

1.1. 使用centos7.9部署

官网手册:https://github.com/google/cadvisor/blob/master/docs/running.md#centos-fedora-and-rhel

docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys/fs/cgroup/cpu,cpuacct:/sys/fs/cgroup/cpuacct,cpu \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
--privileged=true \
google/cadvisor:latest

1.2. 使用ubuntu22.04部署

使用ubuntu22.04部署时不能使用google/cadvisor:latest这个镜像,因为centos7.9默认使用的是cgroup v1,cgroup v1 会将cpu 挂载到/sys/fs/cgroup/cpu,cpuacct目录,而cgroup v2是直接将所有的cgroup挂载到 /sys/fs/cgroup目录。

所以ubuntu22.04在使用google/cadvisor:latest镜像的时候会报错:

F0808 14:43:01.537184       1 cadvisor.go:146] Failed to create a Container Manager: mountpoint for cpu not found

验证以下cgroup版本和挂载路径:
centos7.9:

 docker info | grep -i "cgroup version"
Cgroup Version: 1
mount | grep -i cgroup
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio,net_cls)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)

ubuntu22.04:

docker info | grep -i "cgroup version"
 Cgroup Version: 2
mount | grep -i cgroup
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)

更换镜像gcr.io/cadvisor/cadvisor就可以解决这个问题,但是GCR镜像仓库无法在国内访问,所有需要配置国内的镜像源,目前发现南京源可以正常下载。

添加南京大学镜像站:

{"registry-mirrors": ["https://docker.nju.edu.cn"]
}

但是需要修改域名,例如将gcr.io 修改为gcr.nju.edu.cn

docker pull gcr.nju.edu.cn/cadvisor/cadvisor

部署cadvisor:

docker run \--volume=/:/rootfs:ro \--volume=/var/run:/var/run:ro \--volume=/sys:/sys:ro \--volume=/var/lib/docker/:/var/lib/docker:ro \--volume=/dev/disk/:/dev/disk:ro \--publish=8080:8080 \--detach=true \--name=cadvisor \--privileged \--device=/dev/kmsg \gcr.nju.edu.cn/cadvisor/cadvisor

三、访问cAdvisor

cAdvisor 默认使用8080端口访问:
默认是主机监控界面:
在这里插入图片描述

点击Docker Containers进入容器监控界面:
在这里插入图片描述
在这里插入图片描述

http://www.xdnf.cn/news/17210.html

相关文章:

  • Pygame音频播放的最简框架代码示例
  • Java选手如何看待Golang
  • 质子试验:守护芯片安全的关键防线
  • Java 大视界 -- 基于 Java 的大数据分布式计算在气象灾害数值模拟与预警中的应用(388)
  • 基于Go的抗封禁爬虫引擎设计
  • 一文可视化分析2025年6月计算机视觉顶刊IJCV前沿热点
  • Java 大视界 -- Java 大数据机器学习模型在金融风险传染路径模拟与防控策略制定中的应用(387)
  • 十三、抽象队列同步器AQS
  • JAVA基础-I/O
  • el-image-viewer组件在el-table使用时层级异常问题解决
  • Vue3 基本语法
  • 【Android笔记】Android 自定义 TextView 实现垂直渐变字体颜色(支持 XML 配置)
  • 【密码学】6. 消息认证和哈希函数
  • latex in overleaf快速通关论文排版
  • vue3 el-select 加载触发
  • list类
  • 设计模式中的行为模式
  • 【Unity输入系统】自定义与双击不冲突的单击Interaction
  • 零基础-动手学深度学习-9.3. 深度循环神经网络
  • 深度学习(2):自动微分
  • 数据结构——栈、队列
  • STM32——STM32CubeMX
  • Keil MDK-ARM V5.42a 完整安装教程
  • Git Status 命令深度指南:洞悉仓库状态的核心艺术
  • 【YOLOv8改进 - C2f融合】C2f融合SFS-Conv(空间 - 频率选择卷积)提升特征多样性,同时减少参数和计算量
  • cuda编程笔记(13)--使用CUB库实现基本功能
  • 一个自动定位并查询天气的工具(c语言)
  • Liberica JDK 和普通JDK(如Oracle JDK、OpenJDK等)的差异
  • 经营帮:重构企业经营全流程,打造产业互联网新生态
  • Spring IoC 容器核心流程(面试必懂)