cadvisor监控docker
本地执行cadvisor收集数据
https://github.com/google/cadvisor #官方网站
wget https://github.com/google/cadvisor/releases/download/v0.47.2/cadvisor-v0.47.2-linux-amd64
#下载最新版linux二进制文件
nohup ./cadvisor-v0.47.2-linux-amd64 & #后台运行,默认端口8080,不要冲突
访问ip+端口可以进入cadvisor页面
可以看到所有容器的数据
在prometheus内加入参数,获得cadvisor收集的数据
- job_name: "docker"
static_configs:
- targets: ["192.168.48.139:8080"]
通过docker运行cadvisor镜像收集数据
VERSION=v0.36.0 # use the latest release version from https://github.com/google/cadvisor/releases
[root@localhost ~]# sudo 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 \
> --publish=8080:8080 \
> --detach=true \
> --name=cadvisor \
> --privileged \
> --device=/dev/kmsg \
> google/cadvisor:latest
使用此命令会直接拉去并且创建一个cadvisor容器,使用8080端口进行监控主机,详细解释
--volume=/:/rootfs:ro
: 将宿主机的根目录挂载到容器内的/rootfs
目录,以供容器读取(只读模式)。--volume=/var/run:/var/run:ro
: 将宿主机的/var/run
目录挂载到容器内的/var/run
目录,以供容器读取(只读模式)。--volume=/sys:/sys:ro
: 将宿主机的/sys
目录挂载到容器内的/sys
目录,以供容器读取(只读模式)。--volume=/var/lib/docker/:/var/lib/docker:ro
: 将宿主机的/var/lib/docker
目录挂载到容器内的/var/lib/docker
目录,以供容器读取(只读模式)。--volume=/dev/disk/:/dev/disk:ro
: 将宿主机的/dev/disk
目录挂载到容器内的/dev/disk
目录,以供容器读取(只读模式)。--publish=8080:8080
: 将容器的8080端口映射到宿主机的8080端口,以便通过宿主机访问cadvisor的Web界面。--detach=true
: 将容器以后台模式运行。--name=cadvisor
: 指定容器的名称为cadvisor。--privileged
: 赋予容器特权,以便允许对主机的内核进行一些操作。--device=/dev/kmsg
: 将宿主机的/dev/kmsg
设备挂载到容器内,以供容器读取。
将8080端口添加到prometheus配置文件内,重启prometheus
- job_name: "docker"
static_configs:
- targets: ["192.168.48.139:8080"]