bcc tool 是基于ebpf技术开发的一套功能强大的Linux性能监视,网络等动态跟踪工具,鉴于采用yum 和apt-get 安装的bcc工具经常出现bpf模块报错,所以采取编译安装的方式。
一、基于debian系统编译安装bcc-tool
实验环境:
系统:ubuntu20
内核:5.4.0-62-generic,暂未升级到5.10
实验前准备:
1、检查内核配置
# 命令
less /boot/config-5.4.0-62-generic
# 检查内容
CONFIG_BPF=y
CONFIG_BPF_SYSCALL=y
CONFIG_NET_CLS_BPF=m
CONFIG_NET_ACT_BPF=m
CONFIG_BPF_JIT=y
CONFIG_HAVE_EBPF_JIT=y
CONFIG_BPF_EVENTS=y
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_ACT_POLICE=m
CONFIG_NET_ACT_GACT=m
CONFIG_DUMMY=m
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