使用 Sysdig 监控您的Docker容器

21-08-18 banq

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

 

猜你喜欢