容器监控方案 CAdvisor

CAdvisor介绍

null

cAdvisor (Container Advisor) 是 Google 开源的一个容器监控工具,可用于对容器资源的使用情况和性能进行监控。它以守护进程方式运行,用于收集、聚合、处理和导出正在运行容器的有关信息。具体来说,该组件对每个容器都会记录其资源隔离参数、历史资源使用情况、完整历史资源使用情况的直方图和网络统计信息。

cAdvisor 本身就对 Docker 容器支持,并且还对其它类型的容器尽可能的提供支持,力求兼容与适配所有类型的容器。

cAdvisor 是用于监控容器引擎的。由于其监控的实用性,Kubernetes 已经默认将其与 Kubelet 融合,所以在K8S中无需再单独部署 cAdvisor 组件来暴露节点中容器运行的信息,直接使用 Kubelet 组件提供的指标采集地址即可。

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 \
  --volume=/etc/localtime:/etc/localtime \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  --privileged \
  --device=/dev/kmsg \
  gcr.io/cadvisor/cadvisor:v0.46.0
[root@container-host ~]# docker ps
CONTAINER ID   IMAGE                              COMMAND                   CREATED         STATUS                   PORTS                                       NAMES
8939f74df636   gcr.io/cadvisor/cadvisor:v0.46.0   "/usr/bin/cadvisor -…"   7 minutes ago   Up 7 minutes (healthy)   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   cadvisor

null

null

对接Prometheus监控系统

[root@monitorhost ~]# vim /opt/prometheus/config/prometheus.yml
  - job_name: 'docker'
    scrape_interval: 15s
    scrape_timeout: 5s
    static_configs:
      - targets: ['39.101.1.211:58080']
[root@monitorhost ~]# docker ps
CONTAINER ID   IMAGE                      COMMAND                   CREATED        STATUS        PORTS                                       NAMES
710a61a7537d   prom/prometheus:latest     "/bin/prometheus --s…"   27 hours ago   Up 26 hours   0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   unruffled_fermat
[root@monitorhost ~]# docker restart 710a61a7537d
710a61a7537d

null

null

通过Grafana展示

使用193或11600或893或11558或10619均可。

null

null

null

null

null

运行web容器

[root@container-host ~]# docker run -d nginx:latest
[root@container-host ~]# docker ps
CONTAINER ID   IMAGE                              COMMAND                   CREATED          STATUS                 PORTS                                       NAMES
e288c2d2cacf   nginx:latest                       "/docker-entrypoint.…"   38 seconds ago   Up 37 seconds          80/tcp                                      festive_wescoff
8939f74df636   gcr.io/cadvisor/cadvisor:v0.46.0   "/usr/bin/cadvisor -…"   2 hours ago      Up 2 hours (healthy)   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   cadvisor

null

results matching ""

    No results matching ""