项目简介
本项目是一个基于 C 语言和 libbpf 框架开发的 eBPF 进程追踪系统,可用于追踪进程事件并处理相关数据。
项目的主要特性和功能
主要特性
- 利用
Makefile
实现项目的一键构建。 - 通过
Dockerfile
创建项目的容器化环境。 - 借助
flake.nix
进入包含所需依赖的开发 shell。 - 提供 C 语言使用 libbpf 开发所需的所有必要依赖。
功能模块
- 采用 BPF 语言编写程序追踪进程事件。
- 运用 argp 库解析命令行参数,实现灵活配置。
- 通过 BPF 程序收集事件数据,并在用户空间处理和输出。
- 设置信号处理函数,确保程序优雅退出。
安装使用步骤
安装步骤
若已复制仓库,使用以下命令更新 git 子模块:
sh
git submodule update --init --recursive
安装依赖,不同系统安装方式不同。在 Ubuntu 上,可运行 make install
或以下命令:
sh
sudo apt-get install -y --no-install-recommends \
libelf1 libelf-dev zlib1g-dev \
make clang llvm
确保系统支持 eBPF 技术。
使用步骤
- 构建项目:
sh make build
- 运行项目:
console sudo src/bootstrap
或console docker run --rm -it --privileged -v $(pwd):/examples ghcr.io/eunomia-bpf/libbpf-template:latest
- 项目将加载并验证 BPF 程序,附加到相应的 tracepoints 上,开始追踪进程事件,并将数据写入环形缓冲区,用户空间程序可读取和处理这些数据。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】