如何使用Sysdig监控Ubuntu16.04系统

来自菜鸟教程
跳转至:导航、​搜索

介绍

Sysdig 是一个全面的开源系统活动监控、捕获和分析应用程序。 它具有强大的过滤语言和可定制的输出,以及可以使用称为 chiselsLua 脚本扩展的核心功能。

该应用程序通过利用内核来工作,这允许它查看每个系统调用和通过内核传递的所有信息。 这也使它成为监视和分析系统活动以及系统上运行的应用程序容器生成的事件的出色工具。

核心 Sysdig 应用程序监视安装它的服务器。 然而,该项目背后的公司提供了一个名为 Sysdig Cloud 的托管版本,可以远程监控任意数量的服务器。

独立应用程序在大多数 Linux 发行版上都可用,但在 Windows 和 macOS 上也可用,但功能更有限。 除了 sysdig 命令行工具外,Sysdig 还带有一个名为 csysdig 的交互式 UI,具有类似的选项。

在本教程中,您将安装并使用 Sysdig 来监控 Ubuntu 16.04 服务器。 您将流式传输实时事件、将事件保存到文件、过滤结果并探索 csysdig 交互式 UI。

先决条件

要完成本教程,您需要:

第 1 步 – 使用官方脚本安装 Sysdig

Ubuntu 存储库中有一个 Sysdig 包,但它通常比当前版本晚一两个修订版。 例如,在发布时,使用 Ubuntu 的包管理器安装 Sysdig 将获得 Sysdig 0.8.0。 但是,您可以使用项目开发页面中的官方脚本安装它,这是推荐的安装方法。 这是我们将使用的方法。

但首先,更新包数据库以确保您拥有最新的可用包列表:

sudo apt-get update

现在使用以下命令下载带有 curl 的 Sysdig 安装脚本:

curl https://s3.amazonaws.com/download.draios.com/stable/install-sysdig -o install-sysdig

这会将安装脚本下载到文件 install-sysdig 到当前文件夹。 您需要以提升的权限执行此脚本,并且运行从 Internet 下载的脚本很危险。 在执行脚本之前,通过在文本编辑器中打开它或使用 less 命令在屏幕上显示内容来审核其内容:

less ./install-sysdig

一旦您对脚本将运行的命令感到满意,请使用以下命令执行脚本:

cat ./install-sysdig | sudo bash

该命令将安装所有依赖项,包括内核头文件和模块。 安装的输出将类似于以下内容:

Output* Detecting operating system
* Installing Sysdig public key
OK
* Installing sysdig repository
* Installing kernel headers
* Installing sysdig

...

sysdig-probe:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.4.0-59-generic/updates/dkms/

depmod....

DKMS: install completed.
Processing triggers for libc-bin (2.23-0ubuntu5) ...

现在您已经安装了 Sysdig,让我们看看一些使用它的方法。

第 2 步 - 实时监控您的系统

在本节中,您将使用 sysdig 命令查看 Ubuntu 16.04 服务器上的一些事件。 sysdig 命令需要 root 权限才能运行,并且它需要任意数量的选项和过滤器。 运行命令的最简单方法是不带任何参数。 这将为您提供每两秒刷新一次的系统数据的实时视图:

sudo sysdig

但是,正如您在运行命令后立即看到的那样,分析正在写入屏幕的数据可能很困难,因为它是连续流式传输的,并且您的服务器上发生了很多事件。 按 CTRL+C 停止 sysdig

在我们使用一些选项再次运行命令之前,让我们通过查看命令的示例输出来熟悉输出:

Output253566 11:16:42.808339958 0 sshd (12392) > rt_sigprocmask
253567 11:16:42.808340777 0 sshd (12392) < rt_sigprocmask
253568 11:16:42.808341072 0 sshd (12392) > rt_sigprocmask
253569 11:16:42.808341377 0 sshd (12392) < rt_sigprocmask
253570 11:16:42.808342432 0 sshd (12392) > clock_gettime
253571 11:16:42.808343127 0 sshd (12392) < clock_gettime
253572 11:16:42.808344269 0 sshd (12392) > read fd=10(<f>/dev/ptmx) size=16384
253573 11:16:42.808346955 0 sshd (12392) < read res=2 data=..

输出的列是:

Output%evt.num %evt.outputtime %evt.cpu %proc.name (%thread.tid) %evt.dir %evt.type %evt.info

以下是每列的含义:

  • evt.num 是增量事件编号。
  • evt.outputtime是事件时间戳,可以自定义。
  • evt.cpu 是捕获事件的 CPU 编号。 在上面的输出中,evt.cpu0,是服务器的第一个CPU。
  • proc.name 是生成事件的进程的名称。
  • thread.tid是产生事件的TID,对应单线程进程的PID。
  • evt.dir 是事件方向。 你会看到的 > 用于输入事件和 < 退出事件。
  • evt.type 是事件的名称,例如 “打开”、“读取”、“写入”等。
  • evt.info 是事件参数列表。 在系统调用的情况下,这些往往对应于系统调用参数,但情况并非总是如此:出于简单或性能原因,某些系统调用参数被排除在外。

像在前面的命令中那样运行 sysdig 几乎没有任何价值,因为有太多的信息流入。 但是您可以使用以下语法将选项和过滤器应用于命令:

sudo sysdig [option] [filter]

您可以使用以下方式查看可用过滤器的完整列表:

sysdig -l

有一个广泛的过滤器列表,涵盖多个类或类别。 以下是一些课程:

  • fd:过滤文件描述符 (FD) 信息,如 FD 编号和 FD 名称。
  • process:过滤进程信息,例如生成事件的进程的 ID 和名称。
  • evt:过滤事件信息,如事件编号和时间。
  • user:过滤用户信息,如用户 ID、用户名、用户主目录或登录 shell。
  • group:过滤组信息,如组 ID 和名称。
  • syslog:过滤系统日志信息,如设施和严重性。
  • fdlist:过滤轮询事件的文件描述符。

由于在本教程中涵盖所有过滤器并不实际,让我们尝试几个,从 syslog 类中的 syslog.severity.str 过滤器开始,它可以让您查看发送的消息以特定严重性级别的系统日志。 此命令显示在“信息”级别发送到 syslog 的消息:

sudo sysdig syslog.severity.str=info

注意: 根据您服务器上的活动级别,您可能在输入此命令后看不到任何输出,或者可能需要很长时间才能看到任何输出。 要强制问题,请打开另一个终端仿真器并执行将生成消息到 syslog 的操作。 例如,执行包更新、升级系统或安装任何包。


CTRL+C 终止命令。

应该相当容易解释的输出应该如下所示:

Output10716 03:15:37.111266382 0 sudo (26322) < sendto syslog sev=info msg=Jan 24 03:15:37 sudo: pam_unix(sudo:session): session opened for user root b
618099 03:15:57.643458223 0 sudo (26322) < sendto syslog sev=info msg=Jan 24 03:15:57 sudo: pam_unix(sudo:session): session closed for user root
627648 03:16:23.212054906 0 sudo (27039) < sendto syslog sev=info msg=Jan 24 03:16:23 sudo: pam_unix(sudo:session): session opened for user root b
629992 03:16:23.248012987 0 sudo (27039) < sendto syslog sev=info msg=Jan 24 03:16:23 sudo: pam_unix(sudo:session): session closed for user root
639224 03:17:01.614343568 0 cron (27042) < sendto syslog sev=info msg=Jan 24 03:17:01 CRON[27042]: pam_unix(cron:session): session opened for user
639530 03:17:01.615731821 0 cron (27043) < sendto syslog sev=info msg=Jan 24 03:17:01 CRON[27043]: (root) CMD (   cd / && run-parts --report /etc/
640031 03:17:01.619412864 0 cron (27042) < sendto syslog sev=info msg=Jan 24 03:17:01 CRON[27042]: pam_unix(cron:session): session closed for user

您还可以过滤单个进程。 例如,要查找来自 nano 的事件,请执行以下命令:

sudo sysdig proc.name=nano

由于此命令文件管理器在 nano 上,因此您必须使用 nano 文本编辑器打开文件以查看任何输出。 打开另一个终端编辑器,连接到您的服务器,然后使用 nano 打开一个文本文件。 写几个字符并保存文件。 然后返回您原来的终端。

然后你会看到一些类似这样的输出:

Output21840 11:26:33.390634648 0 nano (27291) < mmap res=7F517150A000 vm_size=8884 vm_rss=436 vm_swap=0
21841 11:26:33.390654669 0 nano (27291) > close fd=3(<f>/lib/x86_64-linux-gnu/libc.so.6)
21842 11:26:33.390657136 0 nano (27291) < close res=0
21843 11:26:33.390682336 0 nano (27291) > access mode=0(F_OK)
21844 11:26:33.390690897 0 nano (27291) < access res=-2(ENOENT) name=/etc/ld.so.nohwcap
21845 11:26:33.390695494 0 nano (27291) > open
21846 11:26:33.390708360 0 nano (27291) < open fd=3(<f>/lib/x86_64-linux-gnu/libdl.so.2) name=/lib/x86_64-linux-gnu/libdl.so.2 flags=4097(O_RDONLY|O_CLOEXEC) mode=0
21847 11:26:33.390710510 0 nano (27291) > read fd=3(<f>/lib/x86_64-linux-gnu/libdl.so.2) size=832

再次,通过键入 CTRL+C 来终止命令。

使用 sysdig 获取系统事件的实时视图并不总是使用它的最佳方法。 幸运的是,还有另一种方法 - 将事件捕获到文件中以供以后分析。 让我们看看如何。

第 3 步 – 使用 Sysdig 将系统活动捕获到文件中

使用 sysdig 将系统事件捕获到文件中,您可以在以后分析这些事件。 要将系统事件保存到文件,请传递 sysdig-w 选项并指定目标文件名,如下所示:

sudo sysdig -w sysdig-trace-file.scap

Sysdig 会一直将生成的事件保存到目标文件中,直到您按下 CTRL+C。 随着时间的推移,该文件会变得非常大。 但是,使用 -n 选项,您可以指定希望 Sysdig 捕获多少事件。 在捕获到目标数量的事件后,它将退出。 例如,要将 300 个事件保存到文件中,请键入:

sudo sysdig -n 300 -w sysdig-file.scap

虽然您可以使用 Sysdig 将指定数量的事件捕获到文件中,但更好的方法是使用 -C 选项将捕获分解为特定大小的较小文件。 为了不使本地存储不堪重负,您可以指示 Sysdig 仅保留一些已保存的文件。 换句话说,Sysdig 支持在一个命令中通过文件轮换将事件捕获到日志中。

例如,要将事件连续保存到大小不超过 1 MB 的文件中,并且只保留最后五个文件(这就是 -W 选项所做的),请执行以下命令:

sudo sysdig -C 1 -W 5 -w sysdig-trace.scap

使用 ls -l sysdig-trace* 列出文件,您将看到与此类似的输出,其中包含五个日志文件:

Output-rw-r--r-- 1 root root 985K Nov 23 04:13 sysdig-trace.scap0
-rw-r--r-- 1 root root 952K Nov 23 04:14 sysdig-trace.scap1
-rw-r--r-- 1 root root 985K Nov 23 04:13 sysdig-trace.scap2
-rw-r--r-- 1 root root 985K Nov 23 04:13 sysdig-trace.scap3
-rw-r--r-- 1 root root 985K Nov 23 04:13 sysdig-trace.scap4

与实时捕获一样,您可以将过滤器应用于保存的事件。 例如,要保存进程 nano 生成的 200 个事件,请键入以下命令:

sudo sysdig -n 200 -w sysdig-trace-nano.scap proc.name=nano

然后,在连接到服务器的另一个终端中,使用 nano 打开一个文件,并通过键入文本或保存文件来生成一些事件。 事件将被捕获到 sysdig-trace-nano.scap 直到 sysdig 记录 200 个事件。

您将如何捕获服务器上生成的所有写入事件? 您将像这样应用过滤器:

sudo sysdig -w sysdig-write-events.scap evt.type=write

片刻后按CTRL+C退出。

使用 sysdig 将系统活动保存到文件时,您可以做更多的事情,但是这些示例应该让您对如何进行操作有了一个很好的了解。 让我们看看如何分析这些文件。

第 4 步 – 使用 Sysdig 读取和分析事件数据

使用 Sysdig 从文件中读取捕获的数据就像将 -r 开关传递给 sysdig 命令一样简单,如下所示:

sudo sysdig -r sysdig-trace-file.scap

这会将文件的全部内容转储到屏幕上,这并不是最好的方法,尤其是在文件很大的情况下。 幸运的是,您可以在读取写入时应用的文件时应用相同的过滤器。

例如,要读取您创建的 sysdig-trace-nano.scap 跟踪文件,但只查看特定类型的事件,例如写入事件,请键入以下命令:

sysdig -r sysdig-trace-nano.scap evt.type=write

输出应类似于:

Output21340 13:32:14.577121096 0 nano (27590) < write res=1 data=.
21736 13:32:17.378737309 0 nano (27590) > write fd=1 size=23
21737 13:32:17.378748803 0 nano (27590) < write res=23 data=#This is a test file..#
21752 13:32:17.611797048 0 nano (27590) > write fd=1 size=24
21753 13:32:17.611808865 0 nano (27590) < write res=24 data= This is a test file..#  
21768 13:32:17.992495582 0 nano (27590) > write fd=1 size=25
21769 13:32:17.992504622 0 nano (27590) < write res=25 data=TThis is a test file..# T
21848 13:32:18.338497906 0 nano (27590) > write fd=1 size=25
21849 13:32:18.338506469 0 nano (27590) < write res=25 data=hThis is a test file..[5G
21864 13:32:18.500692107 0 nano (27590) > write fd=1 size=25
21865 13:32:18.500714395 0 nano (27590) < write res=25 data=iThis is a test file..[6G
21880 13:32:18.529249448 0 nano (27590) > write fd=1 size=25
21881 13:32:18.529258664 0 nano (27590) < write res=25 data=sThis is a test file..[7G
21896 13:32:18.620305802 0 nano (27590) > write fd=1 size=25

让我们看一下您在上一节中保存的文件的内容:sysdig-write-events.scap 文件。 我们知道保存到文件中的所有事件都是写事件,那么我们来看一下内容:

sudo sysdig -r sysdig-write-events.scap evt.type=write

这是部分输出。 如果您在捕获事件时服务器上有任何 SSH 活动,您将看到如下内容:

Output42585 19:58:03.040970004 0 gmain (14818) < write res=8 data=........
42650 19:58:04.279052747 0 sshd (22863) > write fd=3(<4t>11.11.11.11:43566->22.22.22.22:ssh) size=28
42651 19:58:04.279128102 0 sshd (22863) < write res=28 data=.8c..jp...P........s.E<...s.
42780 19:58:06.046898181 0 sshd (12392) > write fd=3(<4t>11.11.11.11:51282->22.22.22.22:ssh) size=28
42781 19:58:06.046969936 0 sshd (12392) < write res=28 data=M~......V.....Z...\..o...N..
42974 19:58:09.338168745 0 sshd (22863) > write fd=3(<4t>11.11.11.11:43566->22.22.22.22:ssh) size=28
42975 19:58:09.338221272 0 sshd (22863) < write res=28 data=66..J.._s&U.UL8..A....U.qV.*
43104 19:58:11.101315981 0 sshd (12392) > write fd=3(<4t>11.11.11.11:51282->22.22.22.22:ssh) size=28
43105 19:58:11.101366417 0 sshd (12392) < write res=28 data=d).(...e....l..D.*_e...}..!e
43298 19:58:14.395655322 0 sshd (22863) > write fd=3(<4t>11.11.11.11:43566->22.22.22.22:ssh) size=28
43299 19:58:14.395701578 0 sshd (22863) < write res=28 data=.|.o....\...V...2.$_...{3.3|
43428 19:58:16.160703443 0 sshd (12392) > write fd=3(<4t>11.11.11.11:51282->22.22.22.22:ssh) size=28
43429 19:58:16.160788675 0 sshd (12392) < write res=28 data=..Hf.%.Y.,.s...q...=..(.1De.
43622 19:58:19.451623249 0 sshd (22863) > write fd=3(<4t>11.11.11.11:43566->22.22.22.22:ssh) size=28
43623 19:58:19.451689929 0 sshd (22863) < write res=28 data=.ZT^U.pN....Q.z.!.i-Kp.o.y..
43752 19:58:21.216882561 0 sshd (12392) > write fd=3(<4t>11.11.11.11:51282->22.22.22.22:ssh) size=28

请注意,前面输出中的所有行都包含 11.11.11.11:51282->22.22.22.22:ssh。 这些事件来自客户端的外部 IP 地址 11.11.11.11 到服务器的 IP 地址 22.22.22.22 。 这些事件通过与服务器的 SSH 连接发生,因此这些事件是预期的。 但是否还有其他不来自此已知客户端 IP 地址的 SSH 写入事件? 很容易发现。

您可以在 Sysdig 中使用许多比较运算符。 你看到的第一个是 =。 其他的是 != , > , >= , < , 和 <= . 在以下命令中,fd.rip 过滤远程 IP 地址。 我们将使用 != 比较运算符来查找来自 11.11.11.11 以外 IP 地址的事件:

sysdig -r sysdig-write-events.scap fd.rip!=11.11.11.11

以下输出显示了部分输出,表明存在来自客户端 IP 地址以外的 IP 地址的写入事件:

Output294479 21:47:47.812314954 0 sshd (28766) > read fd=3(<4t>33.33.33.33:49802->22.22.22.22:ssh) size=1
294480 21:47:47.812315804 0 sshd (28766) < read res=1 data=T
294481 21:47:47.812316247 0 sshd (28766) > read fd=3(<4t>33.33.33.33:49802->22.22.22.22:ssh) size=1
294482 21:47:47.812317094 0 sshd (28766) < read res=1 data=Y
294483 21:47:47.812317547 0 sshd (28766) > read fd=3(<4t>33.33.33.33:49802->22.22.22.22:ssh) size=1
294484 21:47:47.812318401 0 sshd (28766) < read res=1 data=.
294485 21:47:47.812318901 0 sshd (28766) > read fd=3(<4t>33.33.33.33:49802->22.22.22.22:ssh) size=1
294486 21:47:47.812320884 0 sshd (28766) < read res=1 data=.
294487 21:47:47.812349108 0 sshd (28766) > fcntl fd=3(<4t>33.33.33.33:49802->22.22.22.22:ssh) cmd=4(F_GETFL)
294488 21:47:47.812350355 0 sshd (28766) < fcntl res=2(<f>/dev/null)
294489 21:47:47.812351048 0 sshd (28766) > fcntl fd=3(<4t>33.33.33.33:49802->22.22.22.22:ssh) cmd=5(F_SETFL)
294490 21:47:47.812351918 0 sshd (28766) < fcntl res=0(<f>/dev/null)
294554 21:47:47.813383844 0 sshd (28767) > write fd=3(<4t>33.33.33.33:49802->22.22.22.22:ssh) size=976
294555 21:47:47.813395154 0 sshd (28767) < write res=976 data=........zt.....L.....}....curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-s
294691 21:47:48.039025654 0 sshd (28767) > read fd=3(<4t>221.229.172.117:49802->45.55.71.190:ssh) size=8192

进一步调查还显示,流氓IP地址33.33.33.33属于中国的一台机器。 这是需要担心的事情! 这只是您如何使用 Sysdig 来密切关注访问您的服务器的流量的一个示例。

让我们看看使用一些额外的脚本来分析事件流。

第 5 步 – 使用 Sysdig Chisels 进行系统监控和分析

在 Sysdig 用语中,chisels 是 Lua 脚本,您可以使用它来分析 Sysdig 事件流以执行有用的操作。 每个 Sysdig 安装都附带近 50 个脚本,您可以使用以下命令查看系统上可用凿子的列表:

sysdig -cl

一些更有趣的凿子包括:

  • netstat:列出(并可选择过滤)网络连接。
  • shellshock_detect:打印 shellshock 攻击
  • spy_users:显示交互式用户活动。
  • list_login_shells:列出登录 shell ID。
  • spy_ip:显示与给定 IP 地址交换的数据。
  • spy_port:显示使用给定 IP 端口号交换的数据。
  • spy_file:回显任何进程对所有文件的任何读取或写入。 或者,您可以提供文件名以仅拦截对该文件的读取或写入。
  • httptop:显示最高的 HTTP 请求

有关凿子的更详细描述,包括任何相关参数,请使用 -i 标志,后跟凿子的名称。 因此,例如,要查看有关 netstat 凿子的更多信息,请键入:

sysdig -i netstat

既然您已经了解了有关使用 netstat 凿子的所有信息,请通过运行以下命令来利用其功能来监控您的系统:

sudo sysdig -c netstat

输出应类似于以下内容:

OutputProto Server Address           Client Address           State          TID/PID/Program Name
tcp   22.22.22.22:22           11.11.11.11:60422        ESTABLISHED    15567/15567/sshd
tcp   0.0.0.0:22               0.0.0.0:*                LISTEN         1613/1613/sshd

如果您在 客户端地址 列中看到来自您的 IP 地址以外的 IP 地址的 ESTABLISHED SSH 连接,那应该是一个危险信号,您应该进行更深入的调查。

一个更有趣的凿子是 spy_users,它可以让您查看系统上的交互式用户活动。

退出此命令:

sudo sysdig -c spy_users

然后,打开第二个终端并连接到您的服务器。 在第二个终端中执行一些命令,然后返回到运行 sysdig 的终端。 您在第一个终端中键入的命令将在您执行 sysdig -c spy_users 命令的终端上回显。

接下来,让我们探索一下图形工具 Csysdig。

第 6 步 – 使用 Csysdig 进行系统监控和分析

Csysdig 是 Sysdig 附带的另一个实用程序。 它有一个交互式用户界面,提供与 sysdig 命令行相同的功能。 类似于 tophtopstrace,但功能更丰富。

sysdig 命令一样,csysdig 命令可以执行实时监控,并且可以将事件捕获到文件中以供以后分析。 但是 csysdig 为您提供了更有用的实时系统数据视图,每两秒刷新一次。 要查看示例,请键入以下命令:

sudo csysdig

这将打开一个如下图所示的界面,其中显示了被监控主机上所有用户和应用程序生成的事件数据。

界面底部有几个按钮,您可以使用它们来访问程序的不同方面。 最值得注意的是 Views 按钮,它类似于 csysdig 收集的指标类别。 有 29 个开箱即用的视图,包括 ProcessesSystem CallsThreadsContainers、Processes CPU[ X154X]、页面错误文件目录

当您不带参数启动 csysdig 时,您将看到来自 Processes 视图的实时事件。 通过单击 Views 按钮,或按 F2 键,您将看到可用视图的列表,包括列的描述。 您还可以通过按 F7 键或单击 Legend 按钮查看列的说明。 通过按 F1 键或单击 Help 按钮可以访问应用程序本身的摘要手册页 (csysdig)。

下图显示了应用程序的 Views 接口列表。

注意: 对于每个按钮,在按钮的左侧都有一个相应的键盘快捷键或热键。 按两次快捷键将使您返回上一个窗口。 按 ESC 键将获得相同的结果。


尽管您可以不带任何选项和参数运行 csysdig,但命令的语法与 sysdig 一样,通常采用以下形式:

sudo csysdig [option]...  [filter]

最常见的选项是-d,用于修改更新之间的延迟,以毫秒为单位。 例如,要查看每 10 秒更新一次的 csysdig 输出,而不是默认的 2 秒,请键入:

sudo csysdig -d 10000

您可以使用 -E 选项从视图中排除用户和组信息:

sudo csysdig -E

这可以使 csysdig 启动更快,但在大多数情况下速度增益可以忽略不计。

要指示 csysdig 在一定数量的事件后停止捕获,请使用 -n 选项。 达到该数量后,应用程序将退出。 捕获事件的数量必须在五位数字内; 否则你甚至不会看到 csysdig UI:

sudo csysdig -n 100000

要分析跟踪文件,请传递 csysdig-r 选项,如下所示:

sudo csysdig -r sysdig-trace-file.scap

您可以使用与 sysdig 相同的过滤器来限制 csysdig 的输出。 因此,例如,您可以通过使用以下命令启动 csysdig 来过滤用户的输出,而不是查看系统上所有用户生成的事件数据,这将显示仅由 root 用户生成的事件数据:

sudo csysdig user.name=root

输出应类似于下图所示的输出,但输出将反映服务器上正在运行的内容:

要查看生成事件的可执行文件的输出,请向过滤器传递不带路径的二进制文件名称。 以下示例将显示由 nano 命令生成的所有事件。 换句话说,它将显示文本编辑器为 nano 的所有打开文件:

sudo csysdig proc.name=nano

有几十个过滤器可用,您可以使用以下命令查看:

sudo csysdig -l

您会注意到,这与您用于查看 sysdig 命令可用的过滤器的选项相同。 所以 sysdigcsysdig 几乎相同。 主要区别在于 csysdig 带有鼠标友好的交互式 UI。 要随时退出 csysdig,请按键盘上的 Q 键。

结论

Sysdig 可帮助您监控和排除服务器故障。 它将让您深入了解受监控主机上的所有系统活动,包括由应用程序容器生成的活动。 虽然本教程没有专门介绍容器,但监视容器生成的系统活动的能力是 Sysdig 与类似应用程序不同的地方。 更多信息可在项目的 主页 上找到。

Sysdig 的凿子是核心 Sysdig 功能的强大扩展。 它们是用 Lua 编写的,因此您可以随时自定义它们或从头开始编写它们。 要了解有关制作凿子的更多信息,请访问该项目的 官方凿子页面