Ubuntu安装BCC
教程
安装
这里官方文档中首先讲到的是二进制文件的安装,直接通过apt进行安装
sudo apt-get install bpfcc-tools linux-headers-$(uname -r)
这里安装好后,对于/usr/sbin
目录下的部分工具,使用时会报编译错误,无法编译BPF代码
对于低版本的类型的Ubuntu系统,通过以下方式,可以实现安装,并成功使用
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4052245BD4284CDD
echo "deb https://repo.iovisor.org/apt/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/iovisor.list
sudo apt-get update
sudo apt-get install bcc-tools libbcc-examples linux-headers-$(uname -r)
具体的还需要自行尝试。
我使用的是最新的Ubuntu 20.04
版本,上述方法中的lsb_release -cs
在网站中是404,不能安装。
在官方的GitHub issue里对此提到,推荐的安装方法是通过源码进行编译安装,因为repo.iovisor.org
上的版本老旧,且存在bug。
最后安装官方教程采用源码安装
首先安装依赖
# Trusty (14.04 LTS) and older
VER=trusty
echo "deb http://llvm.org/apt/$VER/ llvm-toolchain-$VER-3.7 main
deb-src http://llvm.org/apt/$VER/ llvm-toolchain-$VER-3.7 main" | sudo tee /etc/apt/sources.list.d/llvm.list
wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get update
# For Bionic (18.04 LTS)
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 libfl-dev
# For Eoan (19.10) or Focal (20.04.1 LTS)
sudo apt install -y bison build-essential cmake flex git libedit-dev libllvm7 llvm-7-dev libclang-7-dev python zlib1g-dev libelf-dev libfl-dev
# For other versions
sudo apt-get -y install bison build-essential cmake flex git libedit-dev libllvm3.7 llvm-3.7-dev libclang-3.7-dev python zlib1g-dev libelf-dev
# For Lua support
sudo apt-get -y install luajit luajit-5.1-dev
之后从GitHub克隆代码,进行安装
git clone https://github.com/iovisor/bcc.git
mkdir bcc/build; cd bcc/build
cmake ..
make
sudo make install
cmake -DPYTHON_CMD=python3 .. # build python3 binding
pushd src/python/
make
sudo make install
popd
安装成功后,在/usr/share/bcc/tools
下可以看到官方提供的工具,这里我挑选的是tcptop进行测试
直接输入tcptop
运行
看到抓取到了tcp报文,即成功完成安装