为了解决docker stats的问题(存储、展示),谷歌开源的cadvisor诞生了,cadvisor不仅可以搜集一台机器上所有运行的容器信息,还提供基础查询界面和http接口,方便其他组件如Prometheus进行数据抓取,或者cadvisor + influxdb + grafna搭配使用。cAdvisor可以对节点机器上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况 Cadvisor使用Go语言开发,利用Linux的cgroups获取容器的资源使用信息,在K8S中集成在Kubelet里作为默认启动项,官方标配。
下载二进制:https://github.com/google/cadvisor/releases/latest
本地运行:./cadvisor -port=8080 &>>/var/log/cadvisor.log
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 \
google/cadvisor:latest
建议使用方法1,方法2部署可能会拉取不到镜像。
[root@Prometheus promethus]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f432c2a455b0 nginx "nginx -g 'daemon of…" About an hour ago Up About an hour 0.0.0.0:8383->80/tcp nginx-test03
087d73db5468 nginx "nginx -g 'daemon of…" 2 hours ago Up 2 hours 0.0.0.0:8282->80/tcp nginx-test02
be2788dde488 nginx "nginx -g 'daemon of…" 3 hours ago Up 3 hours 0.0.0.0:8181->80/tcp nginx-test
修改配置文件 vim /usr/local/prometheus/prometheus.yml
- job_name: 'docker'
static_configs:
- targets:
- "114.67.116.119:8080"
- "114.67.94.33:8080"
2、重启动promethus服务
kill -hup PID
或者
pkill promethus
/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
1、导入模板,3125
2、导入8312模板,这个模板不错,有磁盘IO。(建议导入此模板)