sysdig_入门系列之使用Sysdig监视您的Ubuntu 16.04系统

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

介绍

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

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

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

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

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

准备

要完成本教程,您需要:

一台Ubuntu 16.04 的服务器,已经设置好一个可以使用sudo命令的非root的账户。

第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

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

* 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。

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

253566 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(/dev/ptmx) size=16384

253573 11:16:42.808346955 0 sshd (12392) < read res=2 data=..

输出的列是:

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

以下是每列的含义:

evt.num是增量事件编号。

evt.outputtime是事件时间戳,您可以自定义。

evt.cpu是捕获事件的CPU编号。在上面的输出中,evt.cpu为0,这是服务器的第一个CPU。

proc.name是生成事件的进程的名称。

thread.tid是生成事件的TID,它对应于单线程进程的PID。

evt.dir是事件方向。您将看到>用于输入事件和

evt.type是事件的名称,例如'open','read','write'等。

evt.info是事件参数列表。在系统调用的情况下,这些往往对应于系统调用参数,但情况并非总是如此:出于简单性或性能原因,排除了一些系统调用参数。

像上一个sysdig命令一样,运行几乎没有任何价值,因为流入的信息太多了。但是您可以使用以下语法对命令应用选项和过滤器:

$ sudo sysdig [option] [filter]

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

$ sysdig -l

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

fd:过滤文件描述符(FD)信息,如FD编号和FD名称。

process:过滤进程信息,例如生成事件的进程的id和名称。

evt:过滤事件信息,如事件编号和时间。

user:过滤用户信息,如用户ID,用户名,用户主目录或登录shell。

group:过滤组信息,例如组ID和名称。

syslog:过滤syslog信息,如设施和严重性。

fdlist:过滤轮询事件的文件描述符。

由于本教程中的每个过滤器都不实用,所以让我们尝试一下,从syslog类中的syslog.severity.str过滤器开始,它允许您查看以特定严重性级别发送到syslog的消息。此命令显示在“信息”级别发送到syslog的消息:

$ sudo sysdig syslog.severity.str=info

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

按下CTRL+C即可终止命令。

输出应 很容易解释,看起来应 是这样的:

10716 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):

您还可以过滤单个流程。例如,从nano上查看事件,请执行以下命令:

$ sudo sysdig proc.name=nano

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

然后,您将看到类似于此的一些输出:

21840 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(/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(/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(/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*,你会看到与此类似的输出,有五个日志文件:

-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

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

$ 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

输出应类似于:

21340 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活动,您将看到类似的内容:

42585 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到服务器22.22.22.22的IP地址的事件。这些事件发生在与服务器的SSH连接上,因此需要这些事件。但是有没有其他SSH写事件不是来自这个已知的客户端IP地址?这很容易找到。

您可以使用Sysdig的许多比较运算符。你看到的第一个是=。其他的是!=,>,> =,

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

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

294479 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(/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(/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步 - 使用Sysdigchisels进行系统监控和分析

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

$ sysdig -cl

一些更有趣的chisels包括:

netstat:列出(并可选择过滤)网络连接。

shellshock_detect:打印shellshock攻击

spy_users:显示交互式用户活动。

list login shells:列出登录shell ID。

spy_ip:显示使用给定IP地址交换的数据。

spy_port:显示使用给定IP端口号交换的数据。

spy_file:回显任何进程对所有文件的读取或写入。(可选)您可以提供文件名,以仅拦截对文件的读取或写入。

httptop:显示最热门的HTTP请求

有关chisels的更详细描述(包括任何相关参数),请使用-i标志,然后使用chisels的名称。因此,例如,要查看有关netstatchisels的更多信息,请输入:

$ sysdig -i netstat

既然您已经了解了使用 netstatchisels所需要知道的一切,请通过运行以下方式来监控系统:

$ sudo sysdig -c netstat

输出应类似于以下内容:

Proto 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地址以外的ESTABLISHED SSH连接,那么这应 是一个红色标记,您应 进行更深入的探测。

一个更有趣的chiselsspy_users,它允许您查看系统上的交互式用户活动。

退出此命令:

$ sudo sysdig -c spy_users

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

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

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

Csysdig是Sysdig附带的另一个实用程序。它具有交互式用户界面,提供与命令行相同的功能sysdig。这就像top,htop和strace,但功能丰富的多。

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

$ sudo csysdig

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

Csysdig的主界面

在界面的底部有几个按钮,您可以使用它们来访问程序的不同方面。最值得注意的是“ 视图”按钮,它类似于收集的指标类别csysdig。开箱即用的视图有29个,包括进程,系统调用,线程,容器,进程CPU,页面错误,文件和目录。

当您在csysdig没有参数的情况下启动时 ,您将从“ 进程”视图中看到实时事件。通过单击“ 视图”按钮或F2按键,您将看到可用视图列表,包括列的说明。您还可以通过F7按键或单击“ 图例”按钮来查看列的说明。csysdig通过F1按键或单击“ 帮助”按钮,可以访问应用程序本身()的摘要手册页。

下图显示了应用程序的Views界面的列表。

Csysdig视图窗口

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

虽然你可以在csysdig没有任何选项和参数的情况下运行,但命令的语法与sysdigs一样,通常采用以下形式:

$ sudo csysdig [option]... [filter]

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

$ sudo csysdig -d 10000

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

$ sudo csysdig -E

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

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

$ sudo csysdig -n 100000

分析跟踪文件,通过csysdig了-r选项,如下所示:

$ sudo csysdig -r sysdig-trace-file.scap

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

$ sudo csysdig user.name=root

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

root生成的Csysdig数据

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

$ sudo csysdig proc.name=nano

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

$ sudo csysdig -l

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

结论

Sysdig可帮助您监控服务器并对其进行故障排除。它将使您深入了解受监视主机上的所有系统活动,包括应用程序容器生成的活动。虽然本教程未特别涵盖容器,但监视容器生成的系统活动的能力使Sysdig与类似的应用程序区别开来。项目主页上提供了更多信息。

Sysdig的chisels是核心Sysdig功能的强大扩展。它们是用Lua编写的,所以你总是可以自定义它们或者从头开始编写它们。要了解有关制作chisels的更多信息,请访问 项目的官方chisels 页面。

如果您对其他监视系统的工具,例如:使用Ubuntu 16.04上的osquery监视系统安全性,可以访问腾讯云访问更多的教程。

参考文献:《How To Monitor Your Ubuntu 16.04 System with Sysdig》

欢迎大家前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~

海量技术实践经验,尽在云加社区!

Sysdig入门:如何使用Sysdig监控容器系统 它提供了多种预定义的功能集,称为 Chisels,用于分析特定的场景。Chisels 是一组预定义的功能集,用来分析特定的场景。:显示特定容器的CPU使用情况,可以按容器名称或ID查看。:显示读写磁盘文件最多的进程,特别是etcd进程。:分别显示CPU、网络、文件资源使用最高的容器。:统计进程打开的文件描述符数量,前10名。:列出所有打开的文件和对应的进程。:统计连接的IP地址,前10名。:显示磁盘读写活动最频繁的进程。:显示CPU使用率最高的进程。:显示网络活动最频繁的进程。:按端口统计传输的字节数。 阅读详情

相关推荐

理解并使用 sysdig

sysdig 是一个强大的系统分析工具,专注于系统调用的捕获与分析。它通过拦截Linux系统调用和内核事件来收集有关进程、网络、文件、内存等方面的信息,帮助用户深入理解系统行为,解决性能瓶颈、安全隐患及故障排查等问题。其核心原理是利用内核机制(如tracepoint或eBPF)实时捕捉系统调用,并在用户空间处理展示。

Linux内核研究者 2064

Ubantu docker学习笔记(九)容器监控 自带的监控+sysdig+scope+cAdvisor+prometheus

Sysdig 是一款命令行监控工具,因其轻量级的特点深受广大用户的喜爱。Svsdig 就像放大镜,使用户可以更清晰地看到宿主机与容器的各项行为。它相当干多种 Linux 监控工具的合集。同时docker上为我们提供了他的容器镜像!# -- privileged = true :赋予特殊权限;

小唐同学超级呆的博客 4978

Linux系统监控与分析工具Sysdig:安装与使用

Sysdig是一个超级有用的系统工具,运行在Linux环境上,比 strace、tcpdump、lsof 加起来还强大。Sysdig可用来捕获系统状态信息,保存数据并进行过滤和分析。本文主要介绍在Linux上安装Sysdig的基本步骤,然后以监控某个特定程序的系统调用(system call)为例来简单演示一下它的使用

白马负金羁 7420

sysdigubuntu20.04下安装

Done.scap.ko:

sqlora的专栏 684

全栈级系统调用跟踪工具sysdig使用指南

s 字节数-w 文件.scap-r 文件.scap-c 凿子名称-l。

lmzf2011的专栏 1558

ububtu18.04 安装sysdig,及其初步使用

ububtu18.04 安装sysdig,及其初步使用 一、sysdig安装 sysdig是强大的系统监控工具,其在github上开源 这里是Ubuntu18.04的安装 这是GitHub上sysdig的官方介绍文档,里面有安装教程和使用介绍 https://github.com/draios/sysdig/wiki ...

qq_40587909的博客 1223

入门系列使用Sysdig监视您的Ubuntu 16.04系统

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由乌鸦 发表于云+社区专栏 介绍 Sysdig是一个全面的开源系统活动监控,捕获和分析应用程序。它具有强大的过滤语言和可自定义的输出,以及可以使用称为chisels 的Lua脚本扩展的核心功能。 应用程序通过访问内核来工作, 内核允许它查看每个系统调用以及通过内核传递的所...

weixin_34357436的博客 342

使用Sysdig监视您的Ubuntu 16.04系统

介绍 Sysdig是一个全面的开源系统活动监控,捕获和分析应用程序。它具有强大的过滤语言和可自定义的输出,以及可以使用称为chisels的Lua脚本扩展的核心功能。 应用程序通过访问内核来工作, 内核允许它查看每个系统调用以及通过内核传递的所有信息。这也使其成为监视和分析系统上运行的应用程序容器生成的系统活动和事件的出色工具。 核心Sysdig应用程序监视其安装的服务器。但是,该项目背后的...

yangbosos的博客 515

阿里云ECS ubuntu 16.04 搭建svn服务

root权限登陆 1、apt-get install subversion 2、进入home目录 mkdir -p ./svn/myproject svnadmin create ./svn/myproject 3、配置文件简介 版本库中的配置目录 conf 有三个文件: authz 是权限控制文件 passwd 是帐号密码文件 svnserve.conf 是SVN服务综合配置文件 配置权限配置文...

mehent的博客 300

超强的系统挖掘工具sysdig

sysdigsysdig cloud 出品的主要基于Lua语言开发一个超强的工具,就像其在站点首页上所描述的“Sysdig is open source, system-level exploration: capture system state and activity from a running Linux instance, then save, filter ...

weixin_34411563的博客 700

sysdig命令使用

一、安装 本篇主要介绍在centos下的用法安装和测试,后面也会提到在ubuntu类平台下的安装。其支持在centos6和centos7上安装,安装方法十分简洁: 1、centos下的安装 1.1一键安装 curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash 上 面是一个she...

测试 868

docker监控方面的相关介绍

docker监控一、自带的监控命令二、sysdig(轻量级的系统监控程序)三、weave scope四、portainer可视化 一、自带的监控命令 1.运行一个nginx服务 [root@master ~]# docker run -itd --name web -p 80:80 nginx 7a07a65976169f57ab370f42a38852a45c4a895266b85ab9a08ab65fca693c99 [root@master ~]# docker ps CONTAINER ID

weixin_47019016的博客 464

CKS之容器进程分析工具:Sysdig

Sysdig 是一款集多种功能于一体的强大系统监控、分析和故障排查工具。它综合了 strace、tcpdump、htop、iftop 以及 lsof 等工具的功能,能够提供系统资源利用率、进程活动、网络连接以及系统调用等详细信息。Sysdig 不仅能够捕获大量系统运行数据,还具备强大的数据分析能力Sysdig 通过在内核中嵌入驱动模块来挂钩系统调用。这使得在系统调用执行和完成时,它能够捕获相关信息,并将其传输至一个特定的缓冲区。随后,用户空间的组件对这些数据进行处理,包括解压、解析和过滤等操作。

DwanCloud 831
上一篇: android系统一直显示通知栏_android实现常驻通知栏遇到的问题及解决办法
下一篇: picsart旧版本_picsart旧版本
weixin_39795268
博客等级 码龄9年 33粉丝 146原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值