十、監控
(一)Docker 最常用的監控方案
當 Docker 部署規模逐步變大后,可視化監控容器環境的性能和健康狀態將會變得越來越重要,
在本章中,我們將討論幾個目前比較常用的容器監控工具和方案,為大家構建自己的監控系統提供參考,
首先我們會討論 Docker 自帶的幾個監控子命令:ps, top 和 stats,然后是幾個功能更強的開源監控工具 sysdig, Weave Scope, cAdvisor 和 Prometheus,最后我們會對這些不同的工具和方案做一個比較,
(1)Docker 自帶的監控子命令
-
ps
docker container ps是我們早已熟悉的命令了,方便我們查看當前運行的容器,root@ubuntu-01:~# docker container ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES root@ubuntu-01:~#
前面已經有大量示例,這里就不贅述了,值得注意的是,新版的 Docker 提供了一個新命令 docker container ls,其作用和用法與 docker container ps 完全一樣,不過 ls 含義可能比 ps 更準確,所以更推薦使用,
root@ubuntu-01:~# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@ubuntu-01:~#
- top
如果想知道某個容器中運行了哪些行程,可以執行 docker container top [container] 命令,
root@ubuntu-01:~# docker container top bbox2
UID PID PPID C STIME TTY TIME CMD
root 45037 45010 0 10:34 pts/0 00:00:00 sh
root@ubuntu-01:~#
上面顯示了 bbox2 這個容器中的行程,命令后面還可以跟上 Linux 作業系統 ps 命令的引數顯示特定的資訊,比如 -au,
root@ubuntu-01:~# docker container top bbox2 -au
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 45037 0.1 0.0 1320 4 pts/0 Ss+ 10:34 0:00 sh
root@ubuntu-01:~#
-
stats
docker container stats用于顯示每個容器各種資源的使用情況,root@ubuntu-01:~# docker container stats CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 555e99376d37 bbox2 0.00% 976KiB / 1.924GiB 0.05% 1.26kB / 0B 0B / 0B 1 CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 555e99376d37 bbox2 0.00% 976KiB / 1.924GiB 0.05% 1.26kB / 0B 0B / 0B 1 CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 555e99376d37 bbox2 0.00% 976KiB / 1.924GiB 0.05% 1.26kB / 0B 0B / 0B 1 CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 555e99376d37 bbox2 0.00% 976KiB / 1.924GiB 0.05% 1.26kB / 0B 0B / 0B 1 CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 555e99376d37 bbox2 0.00% 976KiB / 1.924GiB 0.05% 1.26kB / 0B 0B / 0B 1 ^C root@ubuntu-01:~#默認會顯示一個實時變化的串列,展示每個容器的 CPU 使用率,記憶體使用量和可用量,
注意:容器啟動時如果沒有特別指定記憶體 limit,stats 命令會顯示 host 的記憶體總量,但這并不意味著每個 container 都能使用到這么多的記憶體,
除此之外
docker container stats命令還會顯示容器網路和磁盤的 IO 資料,默認的輸出有個缺點,顯示的是容器 ID 而非名字,我們可以在
stats命令后面指定容器的名稱只顯示某些容器的資料,比如docker container stats sysdig weave,ps,top, stats 這幾個命令是 docker 自帶的,優點是運行方便,很適合想快速了解容器運行狀態的場景,其缺點是輸出的資料有限,而且都是實時資料,無法反應歷史變化和趨勢,接下來要介紹的幾個監控工具會提供更豐富的功能,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/242739.html
標籤:其他
