docker監控

docker自帶的監控命令

 

docker自帶了三個監控命令即ps, top, statslinux

 

ps

 

docker ps 能夠幫助咱們很快的瞭解當前正在運行的容器git

-a:會顯示已經停掉的容器docker

 
[root@host1 ~]# docker ps
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS               NAMES
2dc535903c8f        weaveworks/scope:1.10.1   "/home/weave/entrypo…"   14 minutes ago      Up 14 minutes                           weavescope
9c0b7af8f210        busybox                   "sh"                     38 minutes ago      Up 38 minutes                           b10
39e40500da10        busybox                   "sh"                     38 minutes ago      Up 38 minutes                           b9
3f5f98e0c5d2        busybox                   "sh"                     38 minutes ago      Up 38 minutes                           b8
a0cef436f61a        busybox                   "sh"                     38 minutes ago      Up 38 minutes                           b7
 

 

top

 

若是想知道某個容器中運行了哪些進程,能夠執行以下的命令:shell

[root@host1 ~]# docker top 266910b9b
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                7162                7144                0                   14:55               pts/0               00:00:00            sh

 

stats

 

用於顯示每一個容器各類資源的使用狀況。ssh

並且是動態刷新的curl

[root@host1 ~]# docker stats 266910b9b
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
266910b9bede        b3                  0.00%               52KiB / 487.5MiB    0.01%               978B / 280B         1.97MB / 8.19kB     1

 

ps,top, stats 這幾個命令是 docker 自帶的,優勢是運行方便,很適合想快速瞭解容器運行狀態的場景。其缺點是輸出的數據有限,並且都是實時數據,沒法反應歷史變化和趨勢。接下來要介紹的幾個監控工具會提供更豐富的功能。工具

 

sysdig

 

sysdig 是一個輕量級的系統監控工具,同時它還原生支持容器post

 

第一步:安裝運行url

[root@host1 ~]# docker container run -it --rm --name=sysdig --privileged=true --volume=/var/run/docker.sock:/host/var/run/docker.sock --volume=/dev:/host/dev --volume=/proc:/host/proc:ro --volume=/boot:/host/boot:ro --volume=/lib/modules:/host/lib/modules:ro --volume=/usr:/host/usr:ro sysdig/sysdig

能夠看到,sysdig 容器是以privileged 方式運行,並且會讀取操做系統 /dev,/proc 等數據,這是爲了獲取足夠的系統信息。spa

 

第二步:進入容器

安裝完以後默認進入了容器

 

第三步:啓動sysdig

輸入命令csysdig,進入到了以下的界面

 

第四步:使用sysdig

這是一個相似 linux top 命令的界面,但要強大太多。sysdig 按不一樣的 View 來監控不一樣類型的資源,點擊底部Views 菜單(或者按 F2),顯示 View 選擇列表。

咱們選擇進入containers,即容器監控

回車或者雙擊 Containers,進入容器監控界面。

sysdig 會顯示該 Host 全部容器的實時數據,每兩秒刷新一次。

若是想按某一列排序,好比按使用的內存量,很簡單,點一下列頭 VIRT。

 

若是想看某個容器運行的進程,好比 b3,將光標移到目標容器,而後回車或者雙擊。

 

 

sysdig 的特色以下:

  1. 監控信息全,包括 Linux 操做系統和容器。
  2. 界面交互性強。

不過 sysdig 顯示的是實時數據,看不到變化和趨勢。並且是命令行操做方式,須要 ssh 到 Host 上執行,會帶來一些不便。

 

weave scope監控容器

 

Weave Scope 的最大特色是會自動生成一張 Docker 容器地圖,讓咱們可以直觀地理解、監控和控制容器。也是我我的比較喜歡的一款監控軟件

 

第一步:安裝

[root@ken ~]# curl -L git.io/scope -o /usr/local/bin/scope
[root@ken ~]# chmod a+x /usr/local/bin/scope

 

第二步:啓動

scope launch將以容器方式啓動 Weave Scope

 
[root@ken ~]# scope launch 
8d4082e5447876fd5c6bdb8b22bef3e3624878321d20fea5c95f2efd4646ef01
Scope probe started
Weave Scope is listening at the following URL(s):
  * http://192.168.122.1:4040/
  * http://10.32.0.3:4040/
  * http://172.20.10.2:4040/
 

 

根據提示,Weave Scope 的訪問地址爲 http://[Host_IP]:4040/

 

若是要查看容器的詳細信息,好比 sysdig,能夠點擊該容器的圖標。

 

在容器信息的上面還有一排操做按鈕。

 

分別是:

attach 到容器啓動進程,至關於執行docker container attach

打開 shell,至關於執行docker container exec

重啓容器,至關於執行docker container restart

暫停容器,至關於執行docker container pause

關閉容器,至關於執行docker container stop

 

這排按鈕使咱們可以遠程控制容器,至關方便。好比能夠直接跳進 sysdig 容器,啓動csysdig 監控工具

除了容器,Weave Scope 還能夠監控 Docker Host。

 

weave scope監控主機

 

點擊頂部HOSTS 菜單項,地圖將顯示當前 host。

 

與容器相似,點擊該 host 圖標將顯示詳細信息。

 

host 頁面上部有一個按鈕,點擊可直接打開 host 的 shell 窗口,這個遠程管理功能真的很貼心。

至關於進入到了你的系統,執行的任何命令都會同步到系統。很是nice

 

weave scope監控多主機

 

咱們已經領略了 Weave Scope 的豐富功能和友好的操做界面。不過它還有一個重要功能:多主機監控。

真正的部署環境都不可能只有一個 host,若是能在一個界面上監控整個容器環境,那絕對是件很是有效率的事情。

 

ken: 172.20.10.2

host1: 172.20.10.7

 

第一步:兩個主機上面都須要安裝weave scope(兩臺主機都須要執行)

[root@ken ~]# curl -L git.io/scope -o /usr/local/bin/scope
[root@ken ~]# chmod a+x /usr/local/bin/scope

 

第二步:兩個主機上都執行以下的命令

這樣,不管訪問 http://172.20.10.2:4040 仍是 http://172.20.10.7:4040,都能監控到兩個 host。

[root@ken ~]# scope launch 172.20.10.2 172.20.10.7

 

第三步:查看主機

 

第四步:查看正在運行的容器

容器圖標右面標明瞭所在的 主機。

 

第五步:搜索

若是部署的容器數量太多(很常見),Weave Scope 還提供了強悍的搜索功能。

 

Continue Reading

相關文章
相關標籤/搜索