docker服务监控中的cAdvisor详解

 更新时间:2025年05月05日 08:30:44   作者:huangSir-devops  
cAdvisor(Container Advisor)是谷歌开源的一款容器资源监控工具,它可以收集容器的 CPU、内存、磁盘 I/O、网络等资源使用情况的信息,本文给大家介绍docker服务监控中的cAdvisor,感兴趣的朋友一起看看吧

概述

cAdvisor(Container Advisor)是谷歌开源的一款容器资源监控工具,它可以收集容器的 CPU、内存、磁盘 I/O、网络等资源使用情况的信息,并提供了一个直观的 Web 界面来展示这些数据,方便用户快速了解容器的运行状态。

特点

  • 资源监控:能实时监控容器的各项资源使用情况,包括 CPU 使用率、内存使用量、磁盘读写速率、网络带宽等。例如,通过它可以查看某个容器是否占用了过多的 CPU 资源,导致其他容器运行缓慢。

  • 容器拓扑结构展示:可以展示容器之间的关系以及它们与宿主机的关系,使用户清晰地了解容器的部署情况。

  • 历史数据存储与查询:支持将监控数据存储到后端数据库中,如 InfluxDB,以便用户查询历史数据,分析容器资源使用的趋势。

  • 支持多种运行环境:不仅支持 Docker 容器,还能用于其他容器化技术,如 runc、systemd-nspawn 等,具有很强的通用性。

工作原理

cAdvisor 通过收集宿主机和容器的相关信息来实现监控功能。它利用了 Linux 系统的 cgroups(控制组)来获取容器的资源使用数据。cgroups 为每个容器分配了独立的资源限制和统计信息,cAdvisor 通过读取这些信息来了解容器对 CPU、内存、磁盘等资源的使用情况。同时,它还利用了 Linux 的网络协议栈来收集网络相关的统计数据。

部署cAdvisor监控Docker

这里不要使用Google的cadvisor,否则会报

F0501 07:18:47.974792       1 cadvisor.go:146] Failed to create a Container Manager: mountpoint for cpu not found

我这里使用lagoudocker/cadvisor:v0.37.0解决的

# 运行容器
[root@lb ~]# 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 \
  lagoudocker/cadvisor:v0.37.0
# 查看
[root@lb ~]# docker ps -a
CONTAINER ID   IMAGE                                 COMMAND                  CREATED          STATUS                            PORTS                                         NAMES
b1d70b85c056   lagoudocker/cadvisor:v0.37.0          "/usr/bin/cadvisor -…"   6 seconds ago    Up 6 seconds (health: starting)   0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp   cadvisor

直接访问http://10.0.0.10:8080/

到此这篇关于docker服务监控中的cAdvisor详解的文章就介绍到这了,更多相关docker服务监控cAdvisor内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • linux下使用Docker Compose部署Spug实现公网远程访问的过程

    linux下使用Docker Compose部署Spug实现公网远程访问的过程

    这篇文章主要介绍了linux下使用Docker Compose部署Spug实现公网远程访问,本例演示搭建使用docker compose 方式安装Spug,并结合cpolar,需要的朋友可以参考下
    2023-11-11
  • Docker 部署 Elasticsearch 9 的搭建过程

    Docker 部署 Elasticsearch 9 的搭建过程

    本文详解Elasticsearch 9.x在Linux上通过Docker部署流程,涵盖新特性如Lucene10优化、BBQ提升向量搜索、EDOT支持多云监控等,并指导配置安全认证与访问权限,感兴趣的朋友跟随小编一起看看吧
    2025-06-06
  • Dockerfile 指令 ADD 和 COPY介绍

    Dockerfile 指令 ADD 和 COPY介绍

    ADD指令的功能是将主机构建环境(上下文)目录中的文件和目录、以及一个URL标记的文件 拷贝到镜像中,COPY指令和ADD指令功能和使用方式类似。只是COPY指令不会做自动解压工作。本文给大家介绍的非常详细,需要的朋友参考下
    2017-03-03
  • docker-entrypoint.sh文件的用处详解

    docker-entrypoint.sh文件的用处详解

    这篇文章主要介绍了docker-entrypoint.sh文件的用处,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 将Docker数据迁移到新磁盘的操作指南

    将Docker数据迁移到新磁盘的操作指南

    在容器化应用的部署中,Docker 通常将数据存储在默认的 /var/lib/docker 目录,然而,随着容器数量的增加和镜像的累积,该目录可能会迅速占满系统磁盘空间,从而影响系统的正常运行,所以本文给大家介绍了如何将Docker数据迁移到新磁盘的操作指南,需要的朋友可以参考下
    2025-04-04
  • docker存储目录迁移示例教程

    docker存储目录迁移示例教程

    随着docker的使用时间越来越长,导致镜像和容器越来越多,占满了系统盘空间,这时,我们需要给它们搬个家了,这篇文章主要介绍了docker存储目录迁移教程,需要的朋友可以参考下
    2023-06-06
  • docker-compose重装部分容器问题及解决

    docker-compose重装部分容器问题及解决

    文章介绍了如何使用docker-compose命令重新启动特定服务,以及docker-compose build和docker-compose up命令的差异和使用场景
    2025-12-12
  • docker安装并持久化postgresql数据库的操作步骤

    docker安装并持久化postgresql数据库的操作步骤

    这篇文章主要介绍了docker安装并持久化postgresql数据库的操作步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 如何使用Docker定时备份数据

    如何使用Docker定时备份数据

    这篇文章主要介绍了如何使用Docker定时备份数据,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-04-04
  • Gitlab-runner+Docker实现自动部署SpringBoot项目

    Gitlab-runner+Docker实现自动部署SpringBoot项目

    这篇文章主要介绍了Gitlab-runner+Docker自动部署SpringBoot项目,我们的主要流程就是通过Gitlab管理代码,然后利用Gitlab自带的Gitlab CI/CD功能与GitlabRunner进行注册绑定,需要的朋友可以参考下
    2022-04-04

最新评论