[关闭]
@cdmonkey 2024-06-25T16:09:08.000000Z 字数 2271 阅读 68

sysdig

命令总结


使用:

sysdig [option]...  [filter]
Opt LongOpt Explain
-A --print-ascii 只输出数据中文本部分 ,就是人可直接阅读之内容。
-b --print-base64
-w --write 将事件捕获(trace)内容写入指定文件。
-r --read 从哪里读入事件信息,通常是个 trace 文件。
-z --compress 启用 trace 文件压缩。

列出指令支持的所有事件(主要是系统调用):

  1. sysdig -L

列出所有过滤器:

  1. sysdig -l

保存为文件使用 -w

Filter

指定过滤器:

  1. sysdig evt.type=read
  2. sysdig evt.type=read and proc.name=sshd

Chisels

使用 -c 指定 Chisels,它是一系列预定义功能集合。

sysdig's chisels(类目)是内置脚本,供使用者用于追踪系统调用、查看系统性能瓶颈,它是用强大而且高效的 Lua 脚本语言编写。

  1. sysdig -cl # --list-chisels,列出所有 Chisels

fdbytes_by

https://blog.51cto.com/shanker/1771418

  1. [root@hidocker02 ~]# sysdig -i fdbytes_by.lua
  2. Category: I/O
  3. -------------
  4. fdbytes_by.lua I/O bytes, aggregated by an arbitrary filter field
  5. Groups FD activity based on the given filter field, and returns the key that ge
  6. nerated the most input+output bytes. For example, this script can be used to li
  7. st the processes or TCP ports that generated most traffic.
  8. Args:
  9. [string] key - The filter field used for grouping

依据给定筛选字段对 FD 活动进行分组,并返回生成最多 IO 字节的键。举例说,这个脚本可用于列出生成最多流量的进程及 TCP 端口。

首先,捕获 30M 的包用于分析:

  1. sysdig -w fdbytes_by.scap -C 30

然后:

  1. [root@hidocker02 ~]# sysdig -r fdbytes_by.scap0 -c fdbytes_by fd.type
  2. Bytes fd.type
  3. --------------------------------------------------------------------------------
  4. 484.63KB file
  5. 18.60KB ipv4
  6. 475B netlink
  7. 20B unix
  8. 8B timerfd

然后:

  1. [root@hidocker02 ~]# sysdig -r fdbytes_by.scap0 -c fdbytes_by fd.directory "fd.type=file"
  2. Bytes fd.directory
  3. --------------------------------------------------------------------------------
  4. 182.81KB /lib64
  5. 159.31KB /etc
  6. 61.08KB /usr/share/locale
  7. 52.55KB /proc
  8. 11.27KB /dev
  9. 11.07KB /dev/pts
  10. 6.35KB /proc/net
  11. 183B /proc/720

然后:

  1. [root@hidocker02 ~]# sysdig -r fdbytes_by.scap0 -c fdbytes_by fd.name "fd.directory=/lib64"
  2. Bytes fd.name
  3. --------------------------------------------------------------------------------
  4. 20.31KB /lib64/libselinux.so.1
  5. 20.31KB /lib64/libdl.so.2
  6. 20.31KB /lib64/libattr.so.1
  7. 20.31KB /lib64/libpthread.so.0
  8. 20.31KB /lib64/libpcre.so.1
  9. 20.31KB /lib64/libacl.so.1
  10. 20.31KB /lib64/libc.so.6
  11. 20.31KB /lib64/libcap.so.2
  12. 20.31KB /lib64/libnss_files.so.2

最后:

  1. # 看看有哪些程序访问这个目录:
  2. sysdig -r fdbytes_by.scap0 -c fdbytes_by proc.name "fd.directory=/lib64"
  3. # 具体查看某个文件:
  4. sysdig -r fdbytes_by.scap0 -c fdbytes_by proc.name "fd.directory=/lib64 and fd.filename=libnss_files.so.2"

topprocs_cpu

  1. sysdig -c topprocs_cpu

其他

监控用户的操作命令:

  1. sysdig -c spy_users

查看占用网络带宽最多的进程:

  1. sysdig -c topprocs_net

查看读写量最大的文件:

  1. sysdig -c topfiles_bytes

Github

https://github.com/draios/sysdig

Wiki

https://github.com/draios/sysdig/wiki

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注