容器监控方案 CAdvisor
CAdvisor介绍
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
对接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
通过Grafana展示
使用193或11600或893或11558或10619均可。
运行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