【.com快译】你的容器现在在做什么?你知道吗?他们跑得怎么样?哪些系统调用和事件与已部署的微服务相关?如果你不知道,那就有点落后了。别担心,有一些工具可以帮助我们深入了解细节,因此您可以轻松获取所需的每条信息。Sysdig就是这样一种工具。按照设计,sysdig直接从Linux内核(而不是/proc)收集系统调用和事件,并(通过自身)执行strace、tcpdump、htop、iftop、lsof和Wireshark执行的操作。换句话说,您只需要使用一个工具,而不是六个。更妙的是,Sysdig自2015年以来就一直具有容器意识。因此,当您需要对Linux上的这些微服务进行故障排除时,Sysdig会随时为您提供支持。虽然Sysdig是一个命令行工具,但它确实包含一个ncurses用户界面,可以更轻松地查看此信息。我将介绍在首选的服务器操作系统UbuntuServer20.04上安装和使用Sysdig。当然,Sysdig可以安装在基于Debian或RedHat的发行版上。要使其工作,您需要一个正在运行的UbuntuServer实例,以及一个具有sudo权限的用户。您还需要一个容器运行时引擎(以便可以部署和监控容器)。我将演示使用Docker引擎和WordPress部署环境。安装Sysdig我们需要做的第一件事是安装Sysdig。为此,请登录您的Ubuntu服务器并执行以下命令:curl-shttps://s3.amazonaws.com/download.draios.com/stable/install-sysdig|sudobash这应该安装所有依赖项以及最新版本Sysdig。部署WordPressDocker容器还不如部署WordPressDocker容器,这样我们就有了要监控的对象。它比部署一次性容器稍微复杂一些,但有必要知道如何操作。首先,使用以下命令拉取MariaDB容器:sudodockerpullmariadb接下来,使用以下命令创建必要的文件夹来存放WordPress数据(用于持久存储):sudomkdir/opt/wordpresssudomkdir-p/opt/wordpress/databasesudomkdir-p/opt/wordpress/html创建一个MariaDB容器:dockerrun-eMYSQL_ROOT_PASSWORD=PWORD1-eMYSQL_USER=wpuser-eMYSQL_PASSWORD=PWORD2-eMYSQL_DATABASE=wordpress_db-v/opt/wordpress/database:/var/lib/mysql--namewordpressdb-dmariadb其中PWORD1和PWORD2是不重复的强密码。使用以下命令拉取最新版本的WordPress:dockerpullwordpress:latest部署WordPress容器:dockerrun-eWORDPRESS_DB_USER=wpuser-eWORDPRESS_DB_PASSWORD=PWORD2-eWORDPRESS_DB_NAME=wordpress_db-p8081:80-v/opt/wordpress/html:/var/www/html--linkwordpressdb:mysql--namewpcontainer-dwordpress其中“PWORD2”是您在之前的dockerrun命令中为wpuser设置的密码。您现在可以将浏览器指向http://SERVER:8081(其中SERVER是您的托管服务器的IP地址)并完成WordPress安装。如何使用Sysdig?现在我们有了要监视的东西,让我们看看如何使用Sysdig。我偏爱使用ncurses命令行界面,因此我们将使用csysdig而不是sysdig命令。首先,您可能想要列出当前正在运行的容器:sudocsysdig-vcontainers如果您部署的唯一容器是用于您的WordPress站点,您应该会看到两个正在运行的容器:wordpressmariadb该列表还将告诉您每个容器使用的CPU数量、关联进程数、线程数、虚拟内存、常驻内存、文件、使用的引擎和容器ID。所以,我们已经看到了使用Sysdig的价值。要退出此视图,请使用[Ctrl]+键盘快捷键。随时获取更多信息。要查看与容器关联的每个进程,请执行以下命令:sudocsysdig-pc这将列出(对于找到的每个进程):PID(进程ID)PPID(父进程ID)VPID(虚拟进程ID)CPU(container)USER(启动容器的用户)virtualmemoryRES(allocatedresidentmemory)files(容器使用的文件)Net(容器使用的总网络I/O)container(容器名称)command(容器使用的命令)上述命令的问题在于它可能提供了太多信息。比如你只想查看某个容器(本文中名为wpress的容器)的相关信息。为此,您可以执行以下命令:sudosysdig-pc-ctopprocs_cpucontainer.name=wpcontainer从上面的命令中您将看到列出以下信息:CPU%ProcessHost_pidContainer_pidContainer.name也许您需要检查网络I/O.再拿我们的例子,执行:sudosysdig-pc-ctopprocs_netcontainer.name=wpcontainer或者sudosysdig-pc-ctopprocs_netcontainer.name=wordpressdb上面的命令会列出:byteprocessHost_pidContainer_pidcontainer.nameSomethingtoknowabouttheabovecommandYes,如果有实际的网络流量,您只会看到数据。如果要查看与WordPress容器的I/O相关的文件怎么办?为此,请执行命令:sudosysdig-pc-ctopfiles_bytescontainer.name=wpcontainer这是另一个仅在使用文件时显示输出的命令您可能还想使用csysdig切换视图。查看上述命令之一时,按F2可打开现有csysdig视图的菜单(图1)。图1:csysdig视图的菜单允许更改视图您应该看到以下对象的以容器为中心的视图:容器、容器错误、K8S控制器、K8S部署环境和K8S命名空间等。但是不要认为您必须记住必要的参数和选项才能执行csysdig命令。事实上,您可以简单地执行:sudocsysdig命令运行后,按键盘上的F2键选择所需的视图。这使得使用该命令变得非常容易(无需记住可用选项和参数选项符号)。结论Sysdig和csysdig是功能强大的工具,可以帮助您从终端窗口监视容器部署环境并对其进行故障排除。它易于安装和使用。想了解更多csysdig的功能,执行命令:mancsysdig或mansysdig原标题:MonitorYourContainerswithSysdig,作者:JackWallen
