bpftrace安装与构建完全指南

bpftrace安装与构建完全指南

bpftrace High-level tracing language for Linux eBPF bpftrace 项目地址: https://gitcode.com/gh_mirrors/bpf/bpftrace

前言

bpftrace作为Linux系统上强大的追踪工具,基于eBPF技术实现,能够帮助开发者和系统管理员深入分析系统行为和性能问题。本文将全面介绍bpftrace的安装方法、构建过程以及相关注意事项,适用于不同Linux发行版用户。

内核要求

bpftrace对Linux内核有特定要求,建议使用4.9或更高版本的内核。不同内核版本支持的关键功能如下:

  • 4.1 - 支持kprobes
  • 4.3 - 支持uprobes
  • 4.6 - 支持堆栈跟踪、count和hist内置函数
  • 4.7 - 支持tracepoints
  • 4.9 - 支持定时器/性能分析

内核编译时需要启用以下选项:

CONFIG_BPF=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_HAVE_EBPF_JIT=y
CONFIG_BPF_EVENTS=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_FUNCTION_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_HAVE_KPROBES=y
CONFIG_KPROBES=y
CONFIG_KPROBE_EVENTS=y
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_UPROBES=y
CONFIG_UPROBE_EVENTS=y
CONFIG_DEBUG_FS=y

可以使用项目提供的check_kernel_features脚本来验证内核功能支持情况。

内核头文件安装

在标准Linux发行版中,通常可以通过包管理器安装内核头文件。但在某些特殊环境(如Docker容器或轻量级发行版)中,可能需要手动安装:

  1. 安装必要的构建工具
  2. 下载对应版本的内核源码
  3. 准备内核构建环境
  4. 创建必要的符号链接

各发行版安装方法

Ubuntu

从19.04版本开始,可以直接通过apt安装:

sudo apt-get install -y bpftrace

Fedora

Fedora 28及以后版本:

sudo dnf install -y bpftrace

Debian

Debian官方仓库已包含bpftrace包。

CentOS

需要从第三方仓库安装。

Arch Linux

sudo pacman -S bpftrace

Alpine Linux

sudo apk add bpftrace

AppImage方式安装

AppImage提供了一种便携式的安装方式,适合在不方便使用包管理器的环境中使用:

  1. 从官方发布页面下载最新版本的AppImage
  2. 解压后即可直接运行
  3. 也可以获取每日构建版本体验最新功能

从源码构建

构建依赖

  • C++编译器
  • Libbpf和Libbcc
  • CMake构建系统
  • Flex和Bison
  • LLVM/Clang 10.0+开发包
  • 其他开发库(LibElf、Binutils等)

通用构建步骤

git clone bpftrace源码仓库
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ../
make
sudo make install

各发行版特殊说明

Ubuntu 18.04/18.10:需要先手动构建BCC工具链

Fedora:建议使用Fedora 28或更新版本

Amazon Linux:需要手动构建多个依赖项(LLVM、ncurses、bison等)

构建完成后,bpftrace二进制文件默认安装在/usr/local/bin目录下,工具脚本安装在/usr/local/share/bpftrace/tools目录中。

处理安全限制

某些Linux发行版启用了内核安全限制机制,这会阻止bpftrace的正常工作。解决方法包括:

  1. 在UEFI设置中禁用安全启动
  2. 使用mokutil工具禁用验证
  3. 临时使用SysRQ+x组合键解除限制(仅限当前会话)

验证安装

安装完成后,可以运行以下命令验证:

bpftrace -e 'kprobe:do_nanosleep { printf("sleep by %s\n", comm); }'

结语

bpftrace作为强大的系统追踪工具,安装方式多样,用户可以根据自己的环境选择最适合的安装方法。对于开发者,从源码构建可以获得最新功能和最大灵活性;对于普通用户,使用发行版提供的软件包是最简单快捷的方式。无论采用哪种方式,都需要确保内核满足基本要求,才能充分发挥bpftrace的强大功能。

bpftrace High-level tracing language for Linux eBPF bpftrace 项目地址: https://gitcode.com/gh_mirrors/bpf/bpftrace

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邢娣蝶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值