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。

时间: 2024-10-21 17:02:20

linux系统故障检查神器Sysdig安装使用说明的相关文章

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

Linux系统Vim编辑器如何安装YouCompleteMe插件?  编译配置选项: /configure --with-features=huge --enable-pythoninterp --enable-python3interp --enable-luainterp --enable-multibyte --enable-sniff --enable-fontset 在我的机器上装有python2.7.5 和 python3.3, 但加了enable-python3interp参数依然

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

在本篇中为了让大家对Linux的安装有个详细的了解,我会对几个热门的Linux发行版进行讲解,并简单的介绍一下图形安装和文本安装的不同安装方式.在Linux的发行版中,这里以比较有名的Red Hat Enterprise Linux 5.X和Fedora 16为例进行讲解 并介绍Red Hat Enterprise Linux 5.X的两种不同安装方式:图形安装和文本安装.下面就让我们一起先来学习下Red Hat Enterprise Linux 5.X的图形安装. 在Linux的发展早期,它的

Linux 6 下yum方式安装配置LAMP平台

Linux下搭建LAMP是经典的不能再经典的中小企业站点构建平台.它的全称是Linux+Apache+Mysql+PHP,常用来搭建动态网站,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.因此在网络上也有比叫有名的LAMP一键安装解决方案.但是对于运维人员来讲,有必要了解其完成的安装过程.本文主要描述基于CentOS 6 下使用yum方式来快速构建LAMP平台(Linux安装忽略). 一.准备yum源(本文使用了163镜像) #

Linux下源码编译安装配置SVN服务器的步骤分享_Linux

说明: SVN(subversion)的运行方式有两种: 一种是基于Apache的http.https网页访问形式: 还有一种是基于svnserve的独立服务器模式. SVN的数据存储方式也有两种:一种是在Berkeley DB数据库中存储数据:另一种是使用普通的文件FSFS存储数据. 由于Berkeley DB方式在使用中有可能锁住数据,一般建议使用FSFS方式更安全. 实现目的: 以svnserve的独立服务器模式,使用FSFS数据存储方式源码编译安装配置SVN服务器. 具体操作: 操作系统

Linux下Memcache服务器端的安装

linux下memcache服务器端的安装 服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 . 下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz 另外,memcache用到了libevent这个库用于socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3.(如果你的系统已经安装了libevent,可以不用安装) 官网:http:

Linux CentOS6.6系统中安装mysql源码包的方法_Linux

这里以CentOS6.6系统中安装MySQL的源码包,进行讲解. 1. mysql源码包的下载 mysql安装包的官方下载地址为:http://dev.mysql.com/downloads/mysql/5.6.html 打开该下载地址后,在 "Select Version:"处,选择要下载的mysql的版本,我选择的是5.6.34:在"Select Platform:"处,选择适用的操作系统类型,由于是下载源码包,故这里我们要选择Source Code. 之后,会

Linux环境下nodejs的安装图文教程_Linux

1.在官网下载nodejs,选择左边的. 2.选择文件右击点击extract here进行解压 3.进入bin目录,右击选择properties,解压文件可以随意放在系统里一个位置.复制location里的路径 4.添加路径 进入.bashrc文件,在末尾处添加步骤三的location里的路径. 6.在终端输入source .bashrc按回车键,再输出路径:echo $PATH检查路径是否已经添加成功 7.检测是否安装nodejs成功.在js文件目录下点击右键,再点击open in termi

Linux系统下自行编译安装MySQL及基础配置全过程解析_Mysql

安装依赖: CentOS: # yum -y install wget gcc-c++ cmake make bison ncurses-devel perl unzip Ubuntu:(使用ubuntu下面有不少需要root权限,请注意) 复制代码 代码如下: # sudo apt-get install -y g++ gcc make libpcre3 zlib1g libbz2-dev automake cmake perl libncurses5-dev bison 添加MySQL系统用

Linux/Unix下ODBC的安装、配置与编程

odbc|unix|编程 Linux/Unix下ODBC的安装.配置与编程 齐亮 (cavendish@eyou.com) 2002 年 7 月 本文主要内容是介绍ODBC的简单原理,以及如何在Linux/Unix下进行ODBC的安装.配置与编程. 一. ODBC原理 ODBC 是Open Database Connect 即开放数据库互连的简称,它是由Microsoft 公司于1991 年提出的一个用于访问数据库的统一界面标准,是应用程序和数据库系统之间的中间件.它通过使用相应应用平台上和所需