littlebot
Published on 2025-04-17 / 0 Visits
0

【源码】基于C语言和libbpf框架的eBPF系统监控工具

项目简介

这是一个基于C语言和libbpf框架开发的eBPF系统监控工具,可用于监控进程的启动和退出事件,具备多种运行方式和强大的数据处理能力。

项目的主要特性和功能

  1. 多方式运行:支持使用Docker和Nix运行,借助direnv和Nix能快速进入完整开发环境的dev shell。
  2. BPF程序处理:加载BPF程序骨架并验证其功能,通过附加BPF程序到特定的tracepoints追踪进程启动和退出事件。
  3. 数据处理:利用环形缓冲区处理来自BPF程序的事件数据,保证数据实时性和可靠性。
  4. 参数化过滤:允许用户通过命令行参数设定最小持续时间,过滤短暂进程事件。
  5. 详细信息展示:打印进程启动和退出的详细事件信息,包括时间戳、事件类型、进程名称、进程ID、父进程ID以及文件名或退出代码等。
  6. 友好交互与调试:提供简洁命令行界面,设置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】