У меня есть несколько узлов в docker swarm, но оба узла показывают только запущенный на них контейнер при запуске команды docker stats
Но я хотел бы перечислить статистику контейнера (процессор, память) со всех узлов, когда статистика докеров запущена на любом из узлов.
Это возможно?
Любое понимание будет большим подспорьем.
это невозможно с чистым докером, или вы можете использовать CAdvisor, чтобы отслеживать узлы из кластера и получать метрики из контейнеров. Если вы хотите, вы также можете отслеживать эти показатели с помощью Prometheus и Grafana.
Нет прямого способа получить всю статистику контейнера данной службы в Swarm.
если вам нужна информация о процессоре, памяти и другая информация, вы можете использовать комбинации docker node
, cut
, xargs
и ssh тогда docker stats
на каждом узле:
docker node ls | cut -c 31-49 | grep -v HOSTNAME | xargs -I"SERVER" sh -c "echo SERVER; ssh SERVER /usr/local/bin/docker stats --no-stream"
Вышеупомянутая команда покажет вам каждый ЦП контейнера, группу памяти по узлу, например
Узел 1
b95a83497c91 awesome_brattain 0.28% 5.629MiB / 1.952GiB 0.28% 916B / 0B 147kB / 0B 9
e5c383697914 test-1951.1.kay7x1lh1twk9c0oig50sd5tr 0.00% 196KiB / 1.952GiB 0.01% 71.2kB / 0B 770kB / 0B 1
Узел 2
67b2525d8ad1 foobar 0.00% 1.727MiB / 1.952GiB 0.09% 2.48kB / 0B 4.11MB / 0B 2
4bda148efbc0 random. 0.00% 1.672MiB / 1.952GiB 0.08% 110kB / 0B 578kB / 0B 2
Также исх. https://stackoverflow.com/questions/45907274/docker-stats-in-swarm-mode