Krishna-cell-12/Kernel-Stream
GitHub: Krishna-cell-12/Kernel-Stream
基于 eBPF 的全栈 Linux 实时可观测性系统,实现从内核事件捕获到 Web 仪表板的端到端进程执行追踪。
Stars: 0 | Forks: 0
# 内核-Stream
### 从内核空间到浏览器 UI 的实时 Linux 进程可观测性





## 概述
Kernel-Stream 是一个全栈、实时 Linux 可观测性流水线,专为端到端追踪进程执行而设计。它利用 eBPF 在 Linux 内核中挂钩 `sched_process_exec`,在 C++ agent 中捕获并结构化事件,使用 Protobuf 序列化遥测数据,通过 gRPC 将其流式传输到 Python 聚合层,并基于 WebSockets 将实时更新分发到 React 仪表板。从而实现了一条从内核事件到面向运维可视化的低延迟遥测路径。
## 架构图
```
graph LR
A[Linux Kernelsched_process_exec tracepoint] B[C++ eBPF Agent
libbpf + ring buffer] C[Python Aggregator
gRPC server + Socket.IO bridge] D[React Dashboard
Recharts + real-time table] A --> B B -->|Protobuf over gRPC| C C -->|WebSocket broadcast| D ``` ## 技术栈 - **内核 / Agent** - Linux eBPF (`tp/sched/sched_process_exec`) - libbpf + BPF ring buffer - C++ userspace 加载器/客户端 - Protobuf + gRPC C++ stubs - **后端** - Python 3 - gRPC Python server - Flask + Flask-SocketIO - Flask-CORS - **前端** - React (Vite) - `socket.io-client` - Recharts - Lucide React 图标 ## 前置条件 - Ubuntu / WSL2(支持 eBPF/BTF 的 Linux 内核) - `clang` - `libbpf-dev` - Python 3(启用 `venv`) - Node.js + npm ## 快速开始 ### 1) 构建后端 + agent 构件 ``` cd ~/Kernel-Stream bash build_and_run.sh ``` ### 2) 安装前端依赖 ``` cd ~/Kernel-Stream/web npm install ``` ### 3) 启动服务(需要三个终端) **终端 A:Python 聚合器(gRPC + WebSocket 桥接)** ``` cd ~/Kernel-Stream source venv/bin/activate python3 server/aggregator.py ``` **终端 B:React 仪表板** ``` cd ~/Kernel-Stream/web npm run dev ``` **终端 C:eBPF Agent** ``` cd ~/Kernel-Stream sudo ./monitor ``` 启动后,打开终端 B 中显示的 Vite URL(通常是 `http://localhost:5173`)以查看实时进程执行遥测数据。 ## 未来规划 - 将事件流持久化到 SQLite,以支持重放、审计和离线分析 - 增加网络包/事件监控,以实现进程与网络的关联分析 - 扩展遥测 schema,增加 CPU、RSS 内存及单进程生命周期指标 - 在事件总线上引入告警规则(基于阈值和异常驱动)
标签:0day挖掘, C++, DevOps 工具, Docker镜像, gRPC, Hpfeeds, libbpf, Linux 可观测性, Mr. Robot, Protobuf, Python, Python工具, Qt, React, sched_process_exec, SQLite数据库, Syscalls, WebSocket, 互联网扫描, 依赖分析, 内核安全, 内核监控, 可视化仪表盘, 后渗透, 实时遥测, 性能分析, 数据擦除, 数据流水线, 无后门, 无线安全, 流量嗅探, 系统调用, 自定义脚本, 进程追踪, 逆向工具