Flox | bpftrace:用于 Linux 的具有 X 射线视觉的可脚本化放大镜

主要观点:当机器出现意外行为时,除了常用的调试工具,还可使用bpftracebpftrace利用 eBPF 能深入系统内部,通过awk风格语言编写脚本,响应内核事件,提取信息并打印输出,还自带一系列有用脚本,同时可自定义脚本进行监控。
关键信息

  • eBPF 可动态检测和编程 Linux 内核,bpftrace借助其能查看系统内部。
  • 在 macOS 上无法安装bpftrace,需在 Linux 系统中安装,可从 Flox Catalog 安装并创建环境激活使用。
  • cpuwalk.bt可采样 CPU 执行进程情况,undump.bt可转储 Unix 域套接字消息内容,tcpconnect.bt可列出新的 TCP 连接。
  • 可通过bpftrace -l查看可用探针,编写脚本如execsnoop.bt可跟踪exec系统调用,bigreadsnoop.bt可报告大于 100,000 字节的读取。
    重要细节
  • bpftrace及其捆绑脚本需超级用户权限运行。
  • 编写bpftrace脚本可参考bpftrace 文档,探针名称有三部分,可用*作为通配符,还有开始和结束系统调用的探针。
阅读 17
0 条评论