由于官网的安装地址有一些问题,不能直接在apt官方库安装,因为有一些名字上的不同,并且有一些tools和文件没有下载下来,不能够完全使用
所以推荐使用源码安装,但是一定要下载bcc-src-with-submodule.tar.gz,src-with-submodule不然会有一些报错,不要git clone
目前安装bcc有两种方式,一种是直接使用发行版提供的软件包,Ubuntu里叫bpfcc-tools,CentOS7中的是bcc-tools。另一种方式是源码编译安装。推荐通过源码编译安装。第一种和第二种方式只能二选一,否则会有冲突导致不可用,目前通过源码编译安装是最稳定最安全的方法。下面将详细介绍通过源码编译安装bcc。
1、下载release,解压
tar -zxvf bcc-src-with-submodule.tar.gz
2、安装依赖
To build the toolchain from source, one needs:
LLVM 3.7.1 or newer, compiled with BPF support (default=on)Clang, built from the same tree as LLVMcmake (>=3.1), gcc (>=4.7), flex, bisonLuaJIT, if you want Lua support
# 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 python3-distutils
3、安装编译
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
4、使用bcc tools
bcc工具的默认安装目录为/usr/share/bcc/tools
例如: 查看缓存命中工具
cd /usr/share/bcc/tools sudo ./cachestat //查看缓存命中情况 sudo ./tcpconnect //查看tcp连接情况
网上踩坑:
Linux发行版最好用Ubuntu,不要用CentOS7
尽量不要用曾经手动升级过内核的系统,用原生的发行版系统
命令安装与源码安装只可二选一,否则可能导致不可用
不要直接clone官方仓库,编译会缺文件,使用bcc的release包。
官方要求的依赖缺少对python3附加模块的支持,需要自己手动添加
此外需要检查一下内核环境:
查看内核版本:
uname -r
内核配置:高版本的内核这些是标配,基本不用管,不放心也可以检查下。通过命令
less /boot/config-4.15.0-159-generic
配置选项:
BPF检查项如下:
CONFIG_BPF=y CONFIG_BPF_SYSCALL=y # [optional, for tc filters] CONFIG_NET_CLS_BPF=m # [optional, for tc actions] CONFIG_NET_ACT_BPF=m CONFIG_BPF_JIT=y # [for Linux kernel versions 4.1 through 4.6] CONFIG_HAVE_BPF_JIT=y # [for Linux kernel versions 4.7 and later] CONFIG_HAVE_EBPF_JIT=y # [optional, for kprobes] CONFIG_BPF_EVENTS=y
bcc 框架检查项:
CONFIG_NET_SCH_SFQ=m CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m CONFIG_DUMMY=m CONFIG_VXLAN=m
设置内核配置选项
若检查内核配置选项与上述检查项不符,在/usr/src目录下使用 make menuconfig命令设置内核配置选项:



