我试图在swarm模式下设置docker并监控swarm中运行的所有服务/容器的资源利用率。
管理器节点上的Docker统计信息似乎不显示工作节点上的资源利用率。
我有什么方法可以做到这一点吗?
感谢。
答案 0 :(得分:2)
尝试Ansible:
ansible docker -a "docker stats --no-stream"
在/etc/ansible/hosts
上设置“ docker”节点的位置
答案 1 :(得分:0)
没有直接的方法来检索Swarm中给定服务的所有容器统计信息。您可能必须使用更多步骤来发现服务的所有任务,所有节点地址和每个容器ID。 engine api docs应该可以帮助您入门。如果您需要一些灵感,我建议您查看https://github.com/charypar/swarm-dashboard或https://github.com/dockersamples/docker-swarm-visualizer等概述信息中心。
答案 2 :(得分:0)
尝试一下以了解CPU和内存使用情况
docker stats --all --format "table {{.ID}}\t{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
答案 3 :(得分:0)
您可以使用 cadvisor 部署在每个节点上或在所有节点上扩展一个 swarm 服务,并逐个收集指标。
docker run -d --name=cadvisor -p 8080:8080 --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/ lib/docker/:/var/lib/docker:ro google/cadvisor:latest