使用 Sysdig 監控您的Docker容器

banq發表於2021-08-18

Sysdigg直接從 Linux 核心(而不是 /proc)收集系統呼叫和事件,並(自行)執行 strace、tcpdump、htop、iftop、lsof 和 Wireshark 所做的工作。當您需要對 Linux 上的這些微服務進行故障排除時,Sysdig 會為您提供支援。

安裝 Sysdig:

curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

讓我們部署一個 WordPress Docker 容器,這樣我們就可以監控一些東西。這比部署一次性容器要複雜一些,但值得知道如何去做。
首先,使用以下命令拉出 MariaDB 容器:
sudo docker pull mariadb
接下來,使用以下命令建立將存放 WordPress 資料(用於持久儲存)的必要資料夾:

sudo mkdir /opt/wordpress
sudo mkdir -p /opt/wordpress/database
sudo mkdir -p /opt/wordpress/html

建立 MariaDB 容器:

docker run -e MYSQL_ROOT_PASSWORD=PWORD1 -e MYSQL_USER=wpuser -e MYSQL_PASSWORD=PWORD2 -e MYSQL_DATABASE=wordpress_db -v /opt/wordpress/database:/var/lib/mysql --name wordpressdb -d mariadb

其中 PWORD1 和 PWORD2 是唯一/強密碼。
使用以下命令拉取最新版本的 WordPress:
docker pull wordpress:latest
部署 WordPress 容器:

docker run -e WORDPRESS_DB_USER=wpuser -e WORDPRESS_DB_PASSWORD=PWORD2 -e WORDPRESS_DB_NAME=wordpress_db -p 8081:80 -v /opt/wordpress/html:/var/www/html --link wordpressdb:mysql --name wpcontainer -d wordpress

其中“PWORD 2”是您在之前的 docker run命令中為 wpuser 設定的密碼。
您現在可以將瀏覽器指向http://SERVER:8081(其中 SERVER 是託管伺服器的 IP 地址)並完成 WordPress 安裝。
 

如何使用 Sysdig
現在我們有了要監控的東西,讓我們看看如何使用 Sysdig。我更喜歡使用ncurses命令列介面,因此我們將使用 csysdig,而不是使用 sysdig 命令。
首先,讓我們列出當前正在執行的容器:
sudo csysdig -vcontainers
如果您部署的唯一容器用於 WordPress 站點,您應該會看到兩個容器正在執行:

  • WordPress的
  • MariaDB 資料庫

清單還將告訴您每個容器使用的 CPU 數量、關聯程式的數量、執行緒、虛擬記憶體、駐留記憶體、檔案、正在使用的引擎以及容器 ID。所以,我們已經看到了使用 Sysdig 的價值。
要檢視與容器關聯的每個程式,請發出以下命令:
sudo csysdig -pc
這將列出(對於找到的每個程式):
  • PID(程式 ID)
  • PPID(父程式 ID)
  • VPID(虛擬程式 ID)
  • CPU(容器使用的CPU)
  • USER(啟動容器的使用者)
  • 虛擬記憶體
  • RES(分配的駐留記憶體)
  • 檔案(容器使用的檔案)
  • Net(容器使用的總網路 I/O)
  • 容器(容器名稱)
  • 命令(容器使用的命令)

上述命令的問題在於它可能會給你太多的資訊。舉例來說,您只想檢視與一個特定容器(在我們的示例中為名為 wpress 的容器)相關聯的資訊。為此,您可以發出以下命令:

sudo sysdig -pc -c topprocs_cpu container.name=wpcontainer
從該命令中,您應該看到列出:
  • 中央處理器%
  • 過程
  • 主機_pid
  • 容器_pid
  • 容器名稱

sudo sysdig -pc -c topprocs_net container.name=wordpressdb
上面的命令將列出:
  • 位元組
  • 過程
  • 主機_pid
  • 容器_pid
  • 容器名稱

關於上述命令要了解的一件事是,只有在存在實際網路流量時,您才能看到資料。
 
按 F2 開啟現有 csysdig 檢視的選單:您應該看到以容器為中心的檢視,例如容器、容器錯誤、K8s 控制器、K8s 部署、K8s 名稱空間等。


結論
Sysdig 和 csysdig 是功能強大的工具,可幫助您從終端視窗監控容器部署並對其進行故障排除。安裝和使用都很簡單。要了解有關 csysdig 可以為您做什麼的更多資訊,請發出以下命令:
man csysdig
要麼
man sysdig

 

相關文章