Skip to content

1. Docker容器监控

1.1 CAdvisor工具

CAdvisor为Google开源的一款用于监控和展示容器运行状态的可视化工具。CAdvisor可直接运行在主机上,它不仅可以搜集到机器上所有运行的容器信息,还提供查询界面和http接口,方便如Prometheus等监控系统进行数据的获取。

2. CAdvisor部署

2.1 启动

bash
docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:rw \
  --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=true \
  google/cadvisor:latest
docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:rw \
  --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=true \
  google/cadvisor:latest

2.2 配置prometheus

bash
- job_name: 'docker'
    static_configs:
    - targets:
      -  '192.168.214.108:8080'
      labels:
        group: docker
- job_name: 'docker'
    static_configs:
    - targets:
      -  '192.168.214.108:8080'
      labels:
        group: docker

3. CAdvisor指标

以下是比较常用到的一些容器指标:

  • CPU指标
container_cpu_load_average_10s       #最近10秒容器的CPU平均负载情况
container_cpu_usage_seconds_total    #容器的CPU累积占用时间
container_cpu_load_average_10s       #最近10秒容器的CPU平均负载情况
container_cpu_usage_seconds_total    #容器的CPU累积占用时间
  • 内存指标
container_memory_max_usage_bytes     #容器的最大内存使用量(单位:字节)
container_memory_usage_bytes        #容器的当前内存使用量(单位:字节)
container_spec_memory_limit_bytes    #容器的可使用最大内存数量(单位:字节)
container_memory_max_usage_bytes     #容器的最大内存使用量(单位:字节)
container_memory_usage_bytes        #容器的当前内存使用量(单位:字节)
container_spec_memory_limit_bytes    #容器的可使用最大内存数量(单位:字节)
  • 网络指标
container_network_receive_bytes_total   #容器网络累积接收字节数据总量(单位:字节)
container_network_transmit_bytes_total  #容器网络累积传输数据总量(单位:字节)
container_network_receive_bytes_total   #容器网络累积接收字节数据总量(单位:字节)
container_network_transmit_bytes_total  #容器网络累积传输数据总量(单位:字节)