Agent-Hellboy/ltm

GitHub: Agent-Hellboy/ltm

ltm 是一个基于 eBPF 的 Linux 主机历史记录与调试工具,将系统级事件持久化到 SQLite 后支持时间线、diff 和自然语言等多种查询方式。

Stars: 22 | Forks: 0

# ltm Linux 的机器历史调试器。通过 eBPF 记录进程、文件、网络、内存和 块 I/O,将元数据存储在 SQLite 中,并回答有关主机上发生事件的 时间线 / diff / 自然语言 / SQL 问题。 ## 快速开始 ``` go build -o bin/ltm ./cmd/ltm sudo ./bin/ltm start # record (eBPF; root, Linux/x86_64) ./bin/ltm timeline --since 5m ./bin/ltm watch # live tail; Ctrl-C to stop ./bin/ltm diff --from 10m --to now ./bin/ltm query "who modified /etc/some.conf?" sudo ./bin/ltm stop ``` 录制需要 root 权限(或 `CAP_BPF` + `CAP_PERFMON`)。查询则不需要。 在没有活动主机的情况下:`ltm benchmark --count 1000` 会生成合成事件。 全局标志位于子命令**之前**(`ltm --db /tmp/ltm.db status`)。 默认值:DB `~/.local/share/ltm/ltm.db`,PID `~/.local/run/ltm.pid`。 在任何读取命令中添加 `--json` 以获取机器可读的输出。 ## 命令 | 命令 | 作用 | |---|---| | `start` / `stop` / `status` | 控制记录器 | | `timeline` | 通过 `--pid --uid --comm --category --action --path --exe --since --until --limit` 进行过滤(可重复;`--path`/`--exe` 为 SQL `LIKE`) | | `watch` | 实时追踪(`--interval --since --category --comm --pid`) | | `diff --from --to` | 两个时间点之间的机器状态更改 | | `query ""` | 自然语言(通过模板,或 agent → SQL) | | `query sql ["