eBPF入门教程实录(一)

写在前面

这几天因为工作需要而接触eBPF(Berkeley Packet Filter ),完全小白,从零开始入门。
BPF Compiler Collection (BCC)是eBPF的编程工具,具体请参考github链接:https://github.com/iovisor/bcc。

参考博客

https://blog.csdn.net/zhaowei121/article/details/90639945

1、直接sudo apt install安装CCB

1.1 ubuntu18.04安装BCC
以下命令一键安装:

sudo apt-get install bpfcc-tools linux-headers- $( uname -r )

安装完成后结果如下所示:
在这里插入图片描述
跳转到/usr/sbin目录下:

 cd /usr/sbin/
 ls

可发现bpfcc相关的文件:
在这里插入图片描述
测试安装结果:

sudo /usr/share/bcc/tools/execsnoop

发现没有反应,没办法,只能再尝试源码编译安装了。

2、源码编译安装

以下是源码编译安装所需的依赖:
在这里插入图片描述

2.1、安装依赖

# 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

我的是是ubuntu18.04,所以;

# For Bionic (18.04 LTS)
sudo apt-get update
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

起初我没有sudo apt-get update,结果老是出现下面的报错:
在这里插入图片描述进行update更新之后便没有再出现这些问题。

最后依赖安装完成,结果如下图所示:
在这里插入图片描述
接下来,开始编译.

2.2 编译安装bcc

按照以下步骤来即可:

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

起初,我是直接在github上下载的bcc-master,安装完依赖后在里面进行编译,然而始终make的时候出错。
在这里插入图片描述
后面发现可能是路径问题导致一些模块没有拷贝到系统目录下,也可能master分支不一样?
待解…

2.3 测试

跑起来了,应该是对了。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值