使用 Prometheus+cAdvisor 监控 Docker 容器指标

发布于:2025-08-10 ⋅ 阅读:(21) ⋅ 点赞:(0)

一、序言

本篇介绍如何使用Prometheus+cAdvisor来监控容器,操作指南来自官网手册:https://prometheus.io/docs/guides/cadvisor/

Prometheus是什么已经知道了,先介绍一下cAdvisor:

cAdvisor(Container Advisor )是谷歌开发的监控容器并提供容器监控指标导出的软件,监控指标可以被Prometheus使用。

cAdvisor官网地址:https://github.com/google/cadvisor
我也写了一篇关于cAdvisor的安装:https://blog.csdn.net/qq_50247813/article/details/150075606?spm=1001.2014.3001.5501

二、开始部署

本篇笔记参考官网手册,使用docker-compose部署

1. 编写docker-compose

version: '3.2'
services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    ports:
    - 9090:9090
    command:
    - --config.file=/etc/prometheus/prometheus.yml
    volumes:
    - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
    depends_on:
    - cadvisor
  cadvisor:
    image: gcr.nju.edu.cn/cadvisor/cadvisor:latest
    container_name: cadvisor
    ports:
    - 8080:8080
    volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker/:/var/lib/docker:ro
    depends_on:
    - redis
  redis:
    image: redis:latest
    container_name: redis
    ports:
    - 6379:6379
  • 在上面的yml文件中需要注意:

      volumes:
          - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
    

    prometheus容器将当前目录下的prometheus.yml映射到了容器里面,所以需要保证当前目录下有这个文件。

  • 由于默认的gcr.io/cadvisor/cadvisor:latest 镜像在国内无法访问所以这里替换成南京源,需要配置docker镜像加速:

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

2. 配置Prometheus

在监控作业中添加一个cadvisor,targets目标为cadvisor:8080

scrape_configs:
- job_name: cadvisor
  scrape_interval: 5s
  static_configs:
  - targets:
    - cadvisor:8080

查看当前目录文件:

 ls -1
docker-compose.yml
prometheus.yml

3. 运行docker-compose

docker-compose up -d
docker-compose ps
NAME         IMAGE                                     COMMAND                  SERVICE      CREATED          STATUS                        PORTS
cadvisor     gcr.nju.edu.cn/cadvisor/cadvisor:latest   "/usr/bin/cadvisor -…"   cadvisor     11 minutes ago   Up About a minute (healthy)   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp
prometheus   prom/prometheus:latest                    "/bin/prometheus --c…"   prometheus   11 minutes ago   Up About a minute             0.0.0.0:9090->9090/tcp, :::9090->9090/tcp
redis        redis:latest                              "docker-entrypoint.s…"   redis        11 minutes ago   Up About a minute             0.0.0.0:6379->6379/tcp, :::6379->6379/tcp

三、查看监控效果

1. 查看一下cadvisor监控

cadvisor监控在8080端口:
在这里插入图片描述
在这里插入图片描述

查看一下监控指标:
在这里插入图片描述

2. 查看Promethus监控

在这里插入图片描述

3. 通过容器监控指标获取监控内容

在这里插入图片描述
这些都是监控指标;

在这里插入图片描述

  • container_memory_usage_bytes{name=“redis”} : 查看 redis cgroup 的总内存使用量(以字节为单位)

网站公告

今日签到

点亮在社区的每一天
去签到