当前,容器的使用已经非常普及,将服务迁移到容器上正成为了越来越多公司的选择。而对于运维人员而言,熟悉容器的使用与监控,也已成为一项必不可少的专业技能。
关于容器的开源产品,目前知名的有Docker、Containerd、CoreOS rkt、LXC 等,在这其中Docker占据了绝对的统治地位,也是当前使用最广泛的容器产品。
本文将介绍通过Prometheus实现Docker容器监控的方案,关于Docker的技术本文不做讲解,不熟悉的朋友可先自行查阅相关资料。
CAdvisor工具CAdvisor为Google开源的一款用于监控和展示容器运行状态的可视化工具。CAdvior可直接运行在主机上,它不仅可以搜集到机器上所有运行的容器信息,还提供查询界面和http接口,方便如Prometheus等监控系统进行数据的获取。CAdvisor的安装很简单,可通过容器的方式进行部署。
docker pull google/cadvisor:latest
docker命令:
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=18080:8080 \
--detach=true \
--name=cadvisor \
--privileged=true \
google/cadvisor:latest
docker-compose
version: "3"
services:
cadvisor:
image: google/cadvisor:latest
container_name: monitoring_cadvisor
restart: unless-stopped
#network_mode: host
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /dev/disk/:/dev/disk:ro
expose:
- 18080
ports:
- 18080:8080
配置prometheus
scrape_configs:
- job_name: "cadvisor"
static_configs:
- targets: ["192.168.103.232:8080"]