新晋系统分析利器Sysdig

定位服务器问题时, 我们需要各式各样的武器, 诸如 iftop, ifstat, netstat, tcpdump, iostat。dstat 等, 因此工具箱需要装满很多工具, 在面对问题的时候才能显得不费吹灰之力, 迅速定位问题并解决, 保障服务稳定运行。Sysdig 的横空出世, 对我们而言, 就是一把瑞士军刀, 灵活小巧, 武艺多端.

安装


curl -s https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public | apt-key add -
curl -s -o /etc/apt/sources.list.d/draios.list http://download.draios.com/stable/deb/draios.list
apt-get update
apt-get -y install sysdig

常用操作


sysdig 有很多 chisel, chisel 意为 铲子, 可以理解为定位某类问题的工具, sysdig 采用 Lua 编写的。
    []查看 chisel 列表[/]

sysdig -cl 

    []查看具体某个 chisel 的提示[/]

sysdig -i spy_logs

    []使用某个 chisel[/]

sysdig -c spy_logs

    []过滤器可以帮助我们从各种输出信息中, 筛选出我们需要的, 比如 [i]proc.name=foo , 如果你记住不了太多过滤器也无妨, 我们可以借助如下命令查看过滤器[/[/i]]

sysdig -l

    []记录定位信息到文本, 以及从文本读取信息[/]

sysdig -w tracefile.cap
sysdig -r tracefile.dump proc.name=sshd

实战


    []服务器上经常需要查看哪个服务带宽占用使用较高, 特别是被 DDOS 的时候。[/]

sudo sysdig -c topprocs_net

    []查看某个IP的通讯数据,并以ASCII 码输出[/]

sudo sysdig -s2000 -A -c echo_fds fd.cip=127.0.0.1

    []查看非请求 redis-server 的其他请求进程和句柄[/]

sudo sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=redis-server"

    []查看访问该服务器的所有 GET 请求数据[/]

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

    []查看访问该服务器的 SQL 语句[/]

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

    []查看磁盘读写最高的进程[/]

sysdig -c topprocs_file

    []查看延迟最大的系统调用[/]

sysdig -c topscalls_time

    []查看具体文件的操作细节[/]

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

    []查看 IO 延迟大于 1ms 的文件[/]

sudo sysdig -c fileslower 1

    []监视某个文件是否被操作, 从安全出发想象空间很大哦[/]

sudo sysdig evt.type=open and fd.name contains /etc
更多方法,详情查阅sysdig官网

0 个评论

要回复文章请先登录注册