sysdig 所有命令都是用lua 实现的。可以在sysdig 的默认安装目录/usr/share/sysdig/chisels中找到支持的所有lua命令脚本。下面按类型列出目前支持的所有的命令。也可以编写自己的命令,参考https://github.com/draios/sysdig/wiki/Writing-a-Sysdig-Chisel,-a-Tutorial
网络
sysdig -c topprocs_net
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
sysdig -c fdcount_by fd.sport "evt.type=accept" in terms of total bytes: sysdig -c fdbytes_by fd.sport
sysdig -c fdcount_by fd.cip "evt.type=accept" in terms of total bytes sysdig -c fdbytes_by fd.cip
sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"
容器
sudo csysdig -vcontainers
sudo csysdig -pc
sudo sysdig -pc -c topprocs_cpu container.name=wordpress1
sudo sysdig -pc -c topprocs_net container.name=wordpress1
sudo sysdig -pc -c topprocs_net container.name=wordpress1
sudo sysdig -pc -c topfiles_bytes container.name=wordpress1
sudo sysdig -pc -c topconns container.name=wordpress1
sudo sysdig -pc -c spy_users container.name=wordpress1
应用
sudo sysdig -s 2000 -A -c echo_fds fd.port=80 and evt.buffer contains GET
sudo sysdig -s 2000 -A -c echo_fds evt.buffer contains SELECT
sysdig -s 2000 -A -c echo_fds fd.sip=192.168.30.5 and proc.name=apache2 and evt.buffer contains SELECT
硬盘 I/O
sysdig -c topprocs_file
sysdig -c fdcount_by proc.name "fd.type=file"
按读+写字节查看顶级文件
sysdig -c topfiles_bytes
sysdig -c topfiles_bytes proc.name=httpd
sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open
sysdig -c fdbytes_by fd.directory "fd.type=file"
按R+W磁盘排序查看/tmp目录中文件
sysdig -c fdbytes_by fd.filename "fd.directory=/tmp/"
sysdig -A -c echo_fds "fd.filename=passwd"
sysdig -c fdbytes_by fd.type
进程和CPU使用率
sysdig -c topprocs_cpu
查看CPU 0的进程:
sysdig -c topprocs_cpu evt.cpu=0
观察进程的标准输出:
sysdig -s4096 -A -c stdout proc.name=cat
性能和错误
查看花费时间最多的文件
sysdig -c topfiles_time
sysdig -c topfiles_time proc.name=httpd
sysdig -c topprocs_errors
按I/O错误查看顶级文件:
sysdig -c topfiles_errors
查看所有失败的磁盘I/O调用:
sysdig fd.type=file and evt.failed=true
sysdig "proc.name=httpd and evt.type=open and evt.failed=true"
sysdig -c topscalls_time
sysdig -c topscalls "evt.failed=true"
sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open and evt.failed=true
sysdig -c fileslower 1
安全
sysdig -p"%evt.arg.path" "evt.type=chdir and user.name=root"
sysdig -A -c echo_fds fd.name=/dev/ptmx and proc.name=sshd
sysdig evt.type=open and fd.name contains /etc
sysdig -r file.scap -c list_login_shells tar
sysdig -r trace.scap.gz -c spy_users proc.loginshellid=5459
异常监控
系统状态监控