bcc tool 是基于ebpf技术开发的一套功能强大的Linux性能监视,网络等动态跟踪工具,鉴于采用yum 和apt-get 安装的bcc工具经常出现bpf模块报错,所以采取编译安装的方式。

一、基于debian系统编译安装bcc-tool

实验环境:

系统:ubuntu20

内核:5.4.0-62-generic,暂未升级到5.10

实验前准备:

1、检查内核配置

  1. # 命令
  2. less /boot/config-5.4.0-62-generic
  3. # 检查内容
  4. CONFIG_BPF=y
  5. CONFIG_BPF_SYSCALL=y
  6. CONFIG_NET_CLS_BPF=m
  7. CONFIG_NET_ACT_BPF=m
  8. CONFIG_BPF_JIT=y
  9. CONFIG_HAVE_EBPF_JIT=y
  10. CONFIG_BPF_EVENTS=y
  11. CONFIG_NET_SCH_SFQ=m
  12. CONFIG_NET_ACT_POLICE=m
  13. CONFIG_NET_ACT_GACT=m
  14. CONFIG_DUMMY=m
  15. CONFIG_VXLAN=m

2、安装构建工具

sudo apt-get -y install bison build-essential cmake flex git libedit-dev \
  libllvm6.0 llvm-6.0-dev libclang-6.0-dev python zlib1g-dev libelf-dev

3、下载release包,我下载的最新的release

wget https://github.com/iovisor/bcc/releases/download/v0.18.0/bcc-src-with-submodule.tar.gz

编译安装:

tar zvxf bcc-src-with-submodule.tar.gz 
mkdir bcc/build
cd bcc/build
cmake ..
make
make install
cmake -DPYTHON_CMD=python3 ..
pushd src/python/
make
make install
popd


二、基于centos系统编译安装bcc-tool

安装依赖

sudo yum install -y epel-release 
sudo yum update -y 
sudo yum groupinstall -y "Development tools" 
sudo yum install -y elfutils-libelf-devel cmake3 git bison flex ncurses-devel 
sudo yum install -y luajit luajit-devel  # for Lua support

编译安装LLVM

curl  -LO  http://releases.llvm.org/7.0.1/llvm-7.0.1.src.tar.xz 
curl  -LO  http://releases.llvm.org/7.0.1/cfe-7.0.1.src.tar.xz 
tar -xf cfe-7.0.1.src.tar.xz 
tar -xf llvm-7.0.1.src.tar.xz 
mkdir clang-build 
mkdir llvm-build 
cd llvm-build 
cmake3 -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \   
    -DCMAKE_BUILD_TYPE=Release ../llvm-7.0.1.src 
make 
sudo make install 
cd ../clang-build 
cmake3 -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \   
    -DCMAKE_BUILD_TYPE=Release ../cfe-7.0.1.src 
make 
sudo make install
cd ..

编译安装bcc-tool

git clone https://github.com/iovisor/bcc.git 
mkdir bcc/build
cd bcc/build 
cmake3 .. 
make 
sudo make install