项目简介
这是一个基于C语言和libbpf框架开发的eBPF系统监控工具,可用于监控进程的启动和退出事件,具备多种运行方式和强大的数据处理能力。
项目的主要特性和功能
- 多方式运行:支持使用Docker和Nix运行,借助direnv和Nix能快速进入完整开发环境的dev shell。
- BPF程序处理:加载BPF程序骨架并验证其功能,通过附加BPF程序到特定的tracepoints追踪进程启动和退出事件。
- 数据处理:利用环形缓冲区处理来自BPF程序的事件数据,保证数据实时性和可靠性。
- 参数化过滤:允许用户通过命令行参数设定最小持续时间,过滤短暂进程事件。
- 详细信息展示:打印进程启动和退出的详细事件信息,包括时间戳、事件类型、进程名称、进程ID、父进程ID以及文件名或退出代码等。
- 友好交互与调试:提供简洁命令行界面,设置libbpf的打印和调试信息回调,便于用户操作与开发者调试。
安装使用步骤
1. 创建新仓库
2. 复制仓库
将新创建的仓库复制到本地,若已复制仓库,使用以下命令更新git子模块:
sh
git submodule update --init --recursive
3. 安装依赖
依赖安装因系统而异,可参考shell.nix和dockerfile。在Ubuntu上,可运行make install
或以下命令:
sh
sudo apt-get install -y --no-install-recommends \
libelf1 libelf-dev zlib1g-dev \
make clang llvm
4. 构建项目
运行以下命令构建项目:
sh
make build
5. 运行项目
运行编译生成的二进制文件:
console
sudo src/bootstrap
或使用Docker运行:
console
docker run --rm -it --privileged -v $(pwd):/examples ghcr.io/eunomia-bpf/libbpf-template:latest
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】