linux系统故障检查神器Sysdig安装使用说明

Sysdig是一款分源的、在Linux上实施系统监控和排除故障的工具,本文我们来讨论一下Sysdig安装及如何使用。

Sysdig 在操作系统层面进行监听,并将系统调用及系统事 件等系统活动捕获下来,这使得它看起来极像面向系统的 tcpdump 或 Wireshark。如果你打算对系统中的异常故障进行排查,那么 Sysdig 将成为你解决问题得心应手的利器。

在 Linux 上,可使用以下命令来安装 Sysdig:

curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

这将把 Sysdig 安装到 rpm 或 deb 系的 Linux 系统。

捕获系统活动

实时捕获,结果打印到标准输出:

sysdig

将捕获结果保存到文件 system.scap,方便稍后分析:

sysdig -w system.scap

捕获指定的事件数 200 并保存到文件:

sysdig -n 200 -w system.scap

读取已捕获的文件:

sysdig -r system.scap

捕获结果解释

(1) (2) (3) (4) (5) (6) (7) (8)
1 10:54:50.462463956 0 sysdig (29043) > sysdigevent event_type=1 event_data=0
2 10:54:50.462603110 0 sysdig (29043) > sysdigevent event_type=1 event_data=0
3 10:54:50.462729565 0 sysdig (29043) > sysdigevent event_type=1 event_data=0
4 10:54:50.462859521 0 sysdig (29043) > sysdigevent event_type=1 event_data=0
5 10:54:50.463206317 0 sysdig (29043) > switch next=0 pgft_maj=0 pgft_min=1790 vm_size=35748 vm_rss=7164 vm_swap=0
6 10:54:50.464246835 0 <NA> (0) > switch next=7 pgft_maj=0 pgft_min=0 vm_size=0 vm_rss=0 vm_swap=0
7 10:54:50.464249707 2 <NA> (0) > switch next=8374 pgft_maj=0 pgft_min=0 vm_size=0 vm_rss=0 vm_swap=0
8 10:54:50.464255940 0 <NA> (7) > switch next=0 pgft_maj=0 pgft_min=0 vm_size=0 vm_rss=0 vm_swap=0
9 10:54:50.464264256 2 <NA> (8374) > switch next=0 pgft_maj=0 pgft_min=0 vm_size=0 vm_rss=0 vm_swap=0
10 10:54:50.464358113 2 <NA> (0) > switch next=854(mlnet) pgft_maj=0 pgft_min=0 vm_size=0 vm_rss=0 vm_swap=0
11 10:54:50.464370099 2 mlnet (854) < poll res=0 fds=
12 10:54:50.464378193 2 mlnet (854) > poll fds= timeout=5
13 10:54:50.464385400 2 mlnet (854) > switch next=0 pgft_maj=216 pgft_min=3386 vm_size=162608 vm_rss=12196 vm_swap=2716
14 10:54:50.464950541 0 <NA> (0) > switch next=1105(memcached) pgft_maj=0 pgft_min=0 vm_size=0 vm_rss=0 vm_swap=0
15 10:54:50.464954692 0 memcached (1105) < epoll_wait res=0
16 10:54:50.464976007 0 memcached (1105) > epoll_wait maxevents=32
17 10:54:50.464984030 0 memcached (1105) > switch next=0 pgft_maj=3 pgft_min=247 vm_size=327412 vm_rss=1860 vm_swap=468
18 10:54:50.465256687 2 <NA> (0) > switch next=2181(plugin-containe) pgft_maj=0 pgft_min=0 vm_size=0 vm_rss=0 vm_swap=0
19 10:54:50.465261465 2 plugin-containe (2181) < poll res=0 fds=
20 10:54:50.465297692 2 plugin-containe (2181) > getrlimit resource=3(RLIMIT_STACK)

通过 Sysdig 捕获的结果如上所示,每列的意思分别为:

事件编号
时间戳
CPU 编号
进程名
线程 ID
事件方向,> 为进入事件,< 为退出事件
事件类型,比如 open、read 等
事件参数列表

过滤捕获结果

在默认情况下,Sysdig 捕获的信息非常多,要从中找到我们感 兴趣的信息,这就需要类似 grep 的过滤功能。

按字段类别进行过滤:

sysdig -r system.scap proc.name=sysdig

这条命令过滤出进程名为 sysdig 的系统事件,结果为:

1 10:54:50.462463956 0 sysdig (29043) > sysdigevent event_type=1 event_data=0
2 10:54:50.462603110 0 sysdig (29043) > sysdigevent event_type=1 event_data=0
3 10:54:50.462729565 0 sysdig (29043) > sysdigevent event_type=1 event_data=0
4 10:54:50.462859521 0 sysdig (29043) > sysdigevent event_type=1 event_data=0
5 10:54:50.463206317 0 sysdig (29043) > switch next=0 pgft_maj=0 pgft_min=1790 vm_size=35748 vm_rss=7164 vm_swap=0

Sysdig 提供包括 fd、process、evt、user、group、syslog 等字段 类别,可通过 sysdig -l 查询。

除 = 外,Sysdig 的过滤表达式还支持 !=、<、<=、>、>= 及 contains 等比较操作符。

同时,也可以使用 and、or、not 等布尔操作符。例如:

sysdig -r system.scap proc.name=sysdig and evt.type=switch

Chisels

在 Sysdig 中,chisels 是通过 Lua 编写的脚本,可以用来扩展 Sysdig 的过滤功能。

比如我们想看读写磁盘文件最频繁的进程,可以使用 topprocs_file 这个 chisels:

sysdig -c topprocs_file

结果为:

Bytes Process
------------------------------
448.36KB mozStorage
220.38KB perl
1.69KB tmux
1.62KB sh
1.59KB Xorg
1.30KB urxvtd

更多 chisels,可通过 sysdig -cl 了解。当然,如果你熟悉 Lua, 那么也可以编写自己的 chisels。

(0)

相关推荐

  • Linux操作系统软件的基本安装和卸载

    Linux软件的安装和卸载一直是困扰许多新用户的难题。在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的"添加/删除程序"来实现。与其相类似,在Linux下有一个功能强大的软件安装 ...

  • Red Hat Enterprise Linux 5.X的图形安装教程

    在本篇中为了让大家对Linux的安装有个详细的了解,我会对几个热门的Linux发行版进行讲解,并简单的介绍一下图形安装和文本安装的不同安装方式。在Linux的发行版中,这里以比较有名的Red Hat ...

  • Linux系统Vim编辑器如何安装YouCompleteMe插件?

    Linux系统Vim编辑器如何安装YouCompleteMe插件? 编译配置选项: /configure --with-features=huge --enable-pythoninterp --en ...

  • 渗透神器Kali安装使用手册中文版

    一.默认的root密码 安装Kali期间可以给root用户设置一个密码.但如果你用的是live.i386.amd64.VMware或ARM镜像时,root的默认密码是toor. 从U盘启动然后安装Ka ...

  • 360抢货神器怎么安装 双十一360浏览器抢货神器使用教程

    天猫双十一活动即将开启,是不是有很多秒杀产品你已经瞄准啦,准备好抢货神器工具才是王道,360抢货神器怎么安装?本文小编就为大家带来双十一360浏览器抢货神器使用教程。 360抢货神器怎么安装 双十一3 ...

  • linux系统中程序的安装.卸载和升级教程

    对于Linux初学者来说,RPM安装是一个不错的选择。如果想真正掌握Linux系统,源代码安装仍然是Linux下软件安装的重要手段。由于linux系统中应用软件的安装和大家熟悉的windows下面的软 ...

  • Linux如何修改RPM的安装目录

    Linux系统下大多数人都是使用rpm -i xxxx.rpm命令来安装RPM包,这种情况下RPM会被安装在默认的目录当中.如果不想把RPM安装在这个目录下应该怎么办呢?下面就来介绍一下Linux如何 ...

  • Linux CentOS上编译并安装Clang教程

    如何在Linux CentOS上编译并安装Clang?下面小编为大家具体的介绍一下,解决你在安装Clang遇到的一系列问题. 一.Minimal版CentOS安装Clang前的环境准备 1,安装gcc ...

  • 种子搜索神器BTSearch怎么用?BTSearch种子搜索神器下载安装使用方法

    种子搜索神器BTSearch好不好呢?种子搜索神器BTSearch在哪下载?种子搜索神器BTSearch怎么用?下面我们的小编就带来BTSearch种子搜索神器下载安装使用方法,一起来看看吧. BTS ...