一、CAdvisor介绍
CAdvisor (Container Advisor) 是 Google 开源的一个容器监控工具,可用于对容器资源的使用情况和性能进行监控。它以守护进程方式运行,用于收集、聚合、处理和导出正在运行容器的有关信息。具体来说,该组件对每个容器都会记录其资源隔离参数、历史资源使用情况、完整历史资源使用情况的直方图和网络统计信息。
CAdvisor 本身就对 Docker 容器支持,并且还对其它类型的容器尽可能的提供支持,力求兼容与适配所有类型的容器。
CAdvisor 是用于监控容器引擎的。由于其监控的实用性,Kubernetes 已经默认将其与 Kubelet 融合,所以在K8S中无需再单独部署 cAdvisor 组件来暴露节点中容器运行的信息,直接使用 Kubelet 组件提供的指标采集地址即可。
实验环境
在上一章的基础上完成
二、CAdvisor准备(192.168.10.17)
CAdvisor容器运行
上传镜像文件cadvisor.tar到/root目录并导入
docker load -i cadvisor.tar
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
docker ps
使用浏览器访问CAdvisor
192.168.10.17:8080
三、对接Prometheus监控系统(prometheus)
vim /opt/prometheus/config/prometheus.yml
添加:
- job_name: "container-host-1"
static_configs:
- targets: ["192.168.10.17:8080"]
docker ps
docker restart 6ce5b0222d0a
container_cpu_load_average_10s
四、通过Grafana展示
从Grafana官网查看模板
查看模板地址:https://grafana.com/grafana/dashboards/
本案例使用10619模板
五、运行报警测试web容器(192.168.10.17)
docker run -d --name nginxweb nginx:latest
docker ps
使用docker命令查看容器占用主机资源情况
docker stats nginxweb
六、容器故障告警配置(prometheus)
vim /opt/prometheus/rules/container.rules.yml
添加:
groups:
- name: container.rules
rules:
- alert: ContainerDown
expr: absent(container_last_seen{job="container-host-1", name=~"nginxweb"}) == 1
for: 1m
labels:
severity: critical
annotations:
summary: "Container {{ $labels.name }} is down"
description: "The container {{ $labels.name }} is no longer running."
docker ps
docker restart 6ce5b0222d0a
七、报警验证(192.168.10.17)
docker ps
docker stop nginxweb