У меня есть несколько узлов в docker swarm, но оба узла показывают только запущенный на них контейнер, когда команда" docker stats " выполняется
Но я хотел бы получить список статистики контейнера (ЦП, память) со всех узлов, когда статистика докеров запущена на любом из узлов.
Возможно ли это?
Любое понимание очень поможет.
Нет прямого способа получить всю статистику контейнера данной службы в Swarm.
если вам нужна информация о процессоре, памяти и другая информация, вы можете использовать комбинации docker узел
, вырезать
, xargs
и ssh, затем статистика докеров
на каждом узле:
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
это невозможно с чистым докером, или вы можете использовать CAdvisor, чтобы сделать монитор на узлах из кластера получить метрики из контейнеров. Если хотите, вы также можете отслеживать эти показатели с помощью прометея и графаны.