sysdig 是一个超级系统工具,它可以用来捕获系统状态信息,在运维工作中sysdig能很方便的排查异常、定位故障,它还能保存数据进行分析,并且提供强大的命令接口。

 在了解sysdig强大之处之前,首先得安装sysdig,我这里是环境是centos6.7.

   1.建立gpg信任密钥,配置yum仓库

   rpm --import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public  
   curl -s -o /etc/yum.repos.d/draios.repo http://download.draios.com/stable/rpm/draios.repo

   2.安装epel仓库

   rpm -i http://mirror.us.leaseweb.net/epel/6/i386/epel-release-6-8.noarch.rpm

   3.安装内核头

   yum -y install kernel-devel-$(uname -r)

   4.安装sysdig

   yum -y install sysdig

   如果安装过程中报下面这个错的话,修改/etc/yum.repos.d/epel.repo 将baseurl的注释取消,mirrorlist的注释掉即可

  linux运维超级工具--sysdig_系统工具

  安装成功,接下来sysdig使用示例

  sysdig -cl | less 可以查看sysdig内建的各个系统状态查看相关模块

  linux运维超级工具--sysdig_import_02


 1.进程和cpu使用率

    查看整个cpu使用情况

    sysdig -c topprocs_cpu

    查看cpu0的使用情况

    sysdig  -c topprocs_cpu evt.cpu=0

    查看进程的标准输出,我这里在执行命令之后用ssh又打开了两个终端

    ysdig -s1484 -A -c stdout proc.name=sshd

    linux运维超级工具--sysdig_系统工具_03


 2.磁盘IO

  查看磁盘io使用信息

  sysdig -c topprocs_file

  linux运维超级工具--sysdig_import_04

  查看读写最多的文件

  sysdig -c topprocs_file

  打印指定程序正在读取或写入的文件

  sysdig -c topfiles_bytes proc.name=cp

  查看所有文件名为passwd的IO活动

  sysdig -A -c echo_fds "fd.filename=passwd"

  显示活动的IO类型

  sysdig -c fdbytes_by fd.type

 

 3.网络

  查看正在使用网络的进程

  sysdig -c fdbytes_by fd.type

  linux运维超级工具--sysdig_import_05

  显示到主机192.168.1.253的往来数据

    以二进制显示

     sysdig -s2000 -X -c echo_fds fd.cip=192.168.1.253

    以 ASCII码显示

     sysdig -s2000 -A -c echo_fds fd.cip=192.168.1.253

   linux运维超级工具--sysdig_系统工具_06

   查看连接最多的服务器端口

      sysdig -c fdcount_by fd.sport "evt.type=accept"

     按字节数

      sysdig -c fdbytes_by fd.sport

  查看客户端连接最多的IP

      sysdig -c fdcount_by fd.cip "evt.type=accept"

     按字节数

      sysdig -c fdbytes_by fd.cip


 4.应用程序

     查看机器所有的http请求

     sudo sysdig -s 2000 -A -c echo_fds fd.port=80 and evt.buffer contains GET

     查看机器所有的sql select查询

     sudo sysdig -s 2000 -A -c echo_fds evt.buffer contains SELECT

    查看所有的httpd错误

     sysdig "proc.name=httpd and evt.type=open and evt.failed=true"

    查看系统调用用用的时间

     sysdig -c topscalls_time