BCC在ubuntu18.04源码安装

BCC在ubuntu18.04源码安装

由于官网的安装地址有一些问题,不能直接在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 LLVM
  • cmake (>=3.1), gcc (>=4.7), flex, bison
  • LuaJIT, 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

# For Focal (20.04.1 LTS)
sudo apt install -y bison build-essential cmake flex git libedit-dev \
  libllvm12 llvm-12-dev libclang-12-dev python zlib1g-dev libelf-dev libfl-dev python3-distutils

# For Hirsute (21.04) or Impish (21.10)
sudo apt install -y bison build-essential cmake flex git libedit-dev \
libllvm11 llvm-11-dev libclang-11-dev python3 zlib1g-dev libelf-dev libfl-dev python3-distutils

# For Jammy (22.04)
sudo apt install -y bison build-essential cmake flex git libedit-dev \
libllvm14 llvm-14-dev libclang-14-dev python3 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命令设置内核配置选项:

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值