如何安装 Sysdig 来监控您的 Linux 系统

您的Linux系统是服务器和桌面的优秀平台。但像任何其他复杂系统一样,及时进行适当的监控对于保持系统达到最佳状态至关重要。幸运的是,Sysdig就在附近!

Sysdig是一款全面的Linux监控工具,可以监视系统的威胁、错误、使用模式等等。在本教程中,您将学会安装Sysdig,并在途中强调如何更好地监控您的Linux系统的特定配置选项。

继续阅读,永远不要错过任何“警报”!

先决条件

本教程将进行实际演示。如果您想跟着操作,请确保您具备以下条件。

  • A Linux machine – This tutorial uses Ubuntu 20.04 LTS, but any Linux distributions will work.
  • A non-root user with sudo privileges.

在Linux上安装Sysdig

Sysdig命令行工具通常在大多数现代Linux发行版中都可以找到,您可以像安装其他软件包一样安装Sysdig到您的机器上。

1. 打开你的终端,并运行下面的apt update命令,以确保你从你的发行版仓库获取到最新的更新。这个命令会更新你系统的软件包列表,可能需要几分钟来完成。

sudo apt update -y
Updating your System’s Package Lists

2. 接下来,运行下面的apt install命令来下载(curl)并安装 Sysdig 所需的必要软件包。这个命令还会安装后续教程中使用的一些附加模块,具体如下:

  • gnupg – GNU 隐私卫士 是一款用于安全通信和数据存储的工具。该软件包允许下载 Sysdig 的公共 GPG 密钥以验证 Sysdig 软件包的有效性。
  • software-properties-common – 通过命令行环境或图形界面快速管理软件源的一种快捷方式。此软件包允许您使用add-apt-repository命令来添加Sysdig软件包仓库。
  • linux-headers-$(uname -r) – 提供构建运行内核的内核模块所需的必要文件。由于您可能在具有旧存储内核的机器上安装Sysdig,因此需要此软件包。
sudo apt install gnupg software-properties-common curl -y && sudo apt install linux-headers-$(uname -r) -y
Installing the Necessary Packages for Sysdig

3. 运行下面的curl命令将Sysdig的GPG公钥(GPG)添加到您的APT密钥环中。此命令可让您验证从sysdig.com下载的软件包是否有效且未经修改。

curl -s https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public | apt-key add -

成功添加密钥后,您将收到如下所示的OK消息。

Adding the GPG key to APT”s Keyring

4. 现在,运行下面的curl命令以静默方式(-s)下载Sysdig仓库,并将其添加到您的系统中。.list扩展名告诉APT该文件是存储库URL列表,而不仅仅是一个URL。

curl -s -o /etc/apt/sources.list.d/draios.list http://download.draios.com/stable/deb/draios.list

5. 重新运行以下命令 apt update 以下载新的 Sysdig 存储库并更新您的 APT 软件包列表,以包含新存储库的信息。

sudo apt update -y

如果您的 APT 配置正确,您将看到以下输出。

Updating your APT’s Package Lists

6. 在下载 Sysdig 存储库后,运行以下命令 apt install 以在您的机器上 安装 sysdig。此命令将下载并安装 sysdig 软件包及其支持的软件包。

sudo apt install sysdig -y
Installing Sysdig

7. 最后,运行以下命令 sysdig 以检查安装在您的机器上的 Sysdig 版本。

sudo sysdig --version

版本号有助于确定您的 Sysdig 软件包是否为最新版本。版本还提供了关于 Sysdig 发布是否影响系统性能的见解。

如下所示,截至本文撰写时,0.28.0 是 sysdig 的最新版本。您的版本号可能会有所不同。

Verifying Sysdig Version Installed

使用 csysdig 监控 Linux 系统

您已安装Sysdig后,可以使用Sysdig来查看系统正在发生的情况。Sysdig命令行工具具有许多标志,可为您提供系统及其活动的不同视图。最基本的示例是csysdig命令。

运行命令csysdig而不带任何标志,即可查看系统当前正在发生的情况。该命令将显示所有当前正在运行的进程的活动。

请注意,您必须以sudo权限运行Sysdig命令,以便完全访问您的系统。一些系统活动可能默认对非root用户隐藏,例如/proc文件系统的输出。Sysdig还需要sudo权限才能自动加载进行其许多技巧所需的内核符号,例如sysdig-probe内核模块。

sudo csysdig

如果您遇到以下错误,则需要重新安装ncurses-term包。在安装Sysdig后,ncurses-term包往往会损坏。Sysdig依赖于ncurses-term包来支持其ncurses界面。

Getting an Error while Running csysdig

如果csysdig命令成功,则会获得以下输出,按标签组织。

Description
PID The Process ID that assigned by the Linux kernel. You use PIDs to identify and manage processes.
PPID The parent process ID of the process. You use PPID to trace the process back through its parent processes. Together, PID and PPID uniquely identify a process on your system.
CPU The percentage of CPU used by the application since it started can be seen on a scale from 0 to 100%, where 100% equals total CPU usage. You use CPU usage to find applications that are hogging system resources.
USER The name of the user that started the process. You use USER to find out who is executing a process you are interested in.
TH The name of the user that started the process. You use USER to find out who is executing a process you are interested in.
VIRT The total amount of virtual memory used by the application. You use VIRT to find applications that are hogging your system’s memory.
RES The number of resident memory pages a process has, as mapped to physical memory. You use RES to find applications that are hogging your system’s memory.
FILE The disk’s file descriptor used by the application. You use FILE to see which files are being read or written frequently, usually an indication of I/O activity.
NET The network socket descriptor used by the application. You use NET to see which network connections are being used by the process, and how much data is being transferred in bytes per second.
Command The network socket descriptor used by the application. You use NET to see which network connections are being used by the process, and how much data is being transferred in bytes per second.

乍一看,csysdig界面看起来与诸如htop之类的监控工具相似。

Monitoring System Processes using Csysdig

按下 F2 键,顶部标签将更改以显示左侧的一个新信息集,如下所示。

Sysdig 将这些称为“视图”,因为它们是不同的系统视图,按照它们显示的信息类型进行组织,提供了更多的上下文。而且,由于这些视图是基于 LUA 脚本的,您可以自定义脚本以从系统中提取不同的数据,并根据需要更改视图。

Viewing System Information via the Csysdig Views

默认情况下,LUA 脚本位于/usr/share/sysdig/chisels目录中,如下所示。

ls /usr/share/sysdig/chisels
Listing files (scripts) in the /usr/share/sysdig/chisels directory

使用 Sysdig Chisels 监控 CPU 消耗进程

Sysdig 提供了几个可立即使用的凿子,它们自动收集特定的系统信息,称为“chisels”。也许您的 CPU 性能较慢。如果是这样,使用指定的凿子运行sysdig命令可以查看哪些应用程序/进程占用了大部分 CPU 使用率。

1. 运行下面的sysdig命令以列出可用的凿子。

sudo sysdig -cl

以下截图仅显示了一些凿子。但您可以在官方文档中找到并学习所有可用凿子的完整列表。

Sysdig凿子也是LUA脚本。您可以创建自己的凿子来监视特定系统信息或实现自己的视图,但这个主题超出了本教程的范围。

Showing Sysdig Chisels

2. 接下来,运行以下命令以查看特定凿子(如本演示中的topprocs_cpu)的详细信息(-i)。

sudo sysdig -i topprocs_cpu

您可以在下面看到关于topprocs_cpu凿子的所有信息,包括凿子的名称、类别以及凿子的简要描述。

在这个例子中,topprocs_cpu凿子被归类为CPU使用情况,并显示由最高CPU利用率定义的顶级进程。

一旦您理解了凿子的功能,就可以开始使用该凿子。

Showing All Information About the topprocs_cpu Chisel

3. 运行下面的sysdig命令,指定正确的凿子(-c topprocs_cpu)来查找在您的系统中使用CPU最多的应用程序。

sudo sysdig -c topprocs_cpu

Sysdig在此演示中捕获了前10个CPU消耗最多的进程,并将它们打印在终端上。最消耗CPU的进程将显示在顶部(sshd),使其更快被发现。

Listing the process defined by the highest CPU utilization.

监控过滤的系统信息

在某些情况下,输出是巨大的,使得根据特定的凿子过滤系统信息变得困难。幸运的是,Sysdig提供了一个强大的过滤选项,使用Lua语法,因此您可以执行有效的过滤。

假设您只想查找导致高CPU使用率的sshd进程。您可以通过特定的PID或进程名称定义过滤表达式

运行下面的sysdig命令,只显示使用大量CPU的sshd进程。

sudo sysdig proc.name=sshd

如下所示,您将获得一个经过过滤的输出,而不会获得任何其他进程信息。

从输出中,您可以获取有关sshd进程的更多信息,例如为什么sshd进程使用更多CPU或内存等。

Listing the SSHD process

创建事件日志文件以监视您的系统

Sysdig提供的一项出色功能之一是事件日志文件,允许您收集有关应用程序或系统在稍后分析时执行的所有信息。事件日志文件提供了与先前示例中的命令行输出相同的信息,但保存在磁盘上的文件中。

1. 运行下面的命令在您的主目录中创建一个名为ata.scap的文件(-w),其中Syslog将存储所有sysdig输出。

文件扩展名为.scap,允许以人类可读的文本形式保存数据流。

sudo sysdig -w ata.scap

2. 接下来,运行下面的ls -la命令,列出工作目录中的所有文件。

ls -la

您会注意到在您的主目录中有一个名为ata.scap的新文件,如下所示。

Listing All Files in Home Directory

3. 最后,运行以下命令以供Sysdig读取(-r)Sysdig事件日志文件(ata.scap),并在您通过SSH登录到服务器时打印您系统的行为。

sudo sysdig -r ata.scap
Viewing the ata.scap File

结论

在本文中,您学会了如何在Ubuntu 20.04上安装Sysdig并使用csysdig来收集系统、应用程序和安全信息。您还涉及创建一个事件日志文件,允许您记录系统的行为。

到目前为止,您已经意识到在系统中安装Sysdig为您提供了强大的工具。这些工具帮助您更深入地了解您的系统、应用程序和基础架构的工作方式。

现在,有了这些新发现的知识,为什么不学习如何使用Sysdig解码您的HTTP流量呢?或者如何使用Sysdig跟踪应用程序的瓶颈呢??或者如何使用Sysdig跟踪应用程序的瓶颈呢?

Source:
https://adamtheautomator.com/sysdig/