当前位置: 首页 > 工具软件 > Sysdig > 使用案例 >

Sysdig 命令使用示例

益明朗
2023-12-01

sysdig 所有命令都是用lua 实现的。可以在sysdig 的默认安装目录/usr/share/sysdig/chisels中找到支持的所有lua命令脚本。下面按类型列出目前支持的所有的命令。也可以编写自己的命令,参考https://github.com/draios/sysdig/wiki/Writing-a-Sysdig-Chisel,-a-Tutorial

网络

  1. 查看占用网络带宽最多的进程 
    sysdig -c topprocs_net

     

  2. 显示主机192.168.0.1的网络传输数据 as binary:
    sysdig -s2000 -X -c echo_fds fd.cip=192.168.0.1 as ASCII: sysdig -s2000 -A -c echo_fds fd.cip=192.168.0.1

     

  3. 查看连接最多的服务器端口 :
    sysdig -c fdcount_by fd.sport "evt.type=accept" in terms of total bytes: sysdig -c fdbytes_by fd.sport

     

  4. 查看客户端连接最多的ip 
     sysdig -c fdcount_by fd.cip "evt.type=accept" in terms of total bytes sysdig -c fdbytes_by fd.cip

     

  5. 列出所有不是访问apache服务的访问连接
    sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"

     

容器

  1. 查看机器上运行的容器列表及其资源使用情况
    sudo csysdig -vcontainers

     

  2. 查看容器上下文的进程列表
    sudo csysdig -pc

     

  3. 查看运行在wordpress1容器里CPU的使用率
    sudo sysdig -pc -c topprocs_cpu container.name=wordpress1

     

  4. 查看运行在wordpress1容器里网络带宽的使用率
    sudo sysdig -pc -c topprocs_net container.name=wordpress1

     

  5. 查看在wordpress1容器里使用网络带宽最多的进程
    sudo sysdig -pc -c topprocs_net container.name=wordpress1

     

  6. 查看在wordpress1 容器里占用 I/O 字节最多的文件
    sudo sysdig -pc -c topfiles_bytes container.name=wordpress1

     

  7. 查看在wordpress1 容器里网络连接的排名情况
    sudo sysdig -pc -c topconns container.name=wordpress1

     

  8. 显示wordpress1容器里所有命令执行的情况
    sudo sysdig -pc -c spy_users container.name=wordpress1

     

应用

  1. 查看机器所有的HTTP请求
    sudo sysdig -s 2000 -A -c echo_fds fd.port=80 and evt.buffer contains GET

     

  2. 查看机器所有的SQL select查询
    sudo sysdig -s 2000 -A -c echo_fds evt.buffer contains SELECT

     

  3. 实时查看 Apache调用外部MYSQL的查询:
    sysdig -s 2000 -A -c echo_fds fd.sip=192.168.30.5 and proc.name=apache2 and evt.buffer contains SELECT

     

硬盘 I/O

  1. 查看使用硬盘带宽最多的进程
    sysdig -c topprocs_file

     

  2. 列出使用大量文件描述符的进程
    sysdig -c fdcount_by proc.name "fd.type=file"

     

  3. 按读+写字节查看顶级文件

    sysdig -c topfiles_bytes

     

  4. 打印apache读取或写入的顶级文件 :
    sysdig -c topfiles_bytes proc.name=httpd

     

  5. 基本的opensnoop:当snoop文件在被打开时 :
    sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open

     

  6. 按R+W磁盘排序查看顶级目录:
    sysdig -c fdbytes_by fd.directory "fd.type=file"

     

  7. 按R+W磁盘排序查看/tmp目录中文件

    sysdig -c fdbytes_by fd.filename "fd.directory=/tmp/"

     

  8. 观察名为“passwd”的文件上的I/O操作:
    sysdig -A -c echo_fds "fd.filename=passwd"

     

  9. 按FD类型显示I/O活动:
    sysdig -c fdbytes_by fd.type

     

进程和CPU使用率

  1. 查看CPU使用率最高的进程:
    sysdig -c topprocs_cpu

     

  2. 查看CPU 0的进程:

    sysdig -c topprocs_cpu evt.cpu=0

     

  3. 观察进程的标准输出:

    sysdig -s4096 -A -c stdout proc.name=cat

     

性能和错误

  1. 查看花费时间最多的文件

    sysdig -c topfiles_time

     

  2. 查看apache花费大部分时间的文件
    sysdig -c topfiles_time proc.name=httpd

     

  3. 查看I/O错误最多的级进程:
    sysdig -c topprocs_errors

     

  4. 按I/O错误查看顶级文件:

    sysdig -c topfiles_errors

     

  5. 查看所有失败的磁盘I/O调用:

    sysdig fd.type=file and evt.failed=true

     

  6. 查看httpd打开失败的文件:
    sysdig "proc.name=httpd and evt.type=open and evt.failed=true"

     

  7. 查看花费了大部分时间的系统调用:
     sysdig -c topscalls_time

     

  8. 查看返回错误的系统调用:
     sysdig -c topscalls "evt.failed=true"

     

  9. 罗列出打开失败的文件:
    sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open and evt.failed=true

     

  10. 打印延迟大于1毫秒的文件I/O调用:
    sysdig -c fileslower 1

     

安全

  1. 显示用户“根”访问的目录:
    sysdig -p"%evt.arg.path" "evt.type=chdir and user.name=root"

     

  2. 观察ssh活动:
     sysdig -A -c echo_fds fd.name=/dev/ptmx and proc.name=sshd

     

  3. 显示/etc中打开的每个文件:
    sysdig evt.type=open and fd.name contains /etc

     

  4. 显示已启动“tar”命令的所有登录shell的ID:
    sysdig -r file.scap -c list_login_shells tar

     

  5. 显示登录shell使用给定ID执行的所有命令:
    sysdig -r trace.scap.gz -c spy_users proc.loginshellid=5459

     

异常监控

  1. topcontainers_error 出错最多的容器
  2. topfiles_errors 出错最多的文件
  3. topprocs_errors 出错做多的进程

系统状态监控

  1. lscontainers 罗列正在运行的容器
  2. lsof  列出(并可选地筛选)打开的文件描述符.
  3. netstat 列出(并可选地筛选)网络连接.
  4. ps 列出(并可选地筛选)计算机处理的。

 

 

 类似资料: