1v4mp1r3/light-log-aggregator

GitHub: 1v4mp1r3/light-log-aggregator

Loglite 是一个用 Go 编写的轻量级日志聚合器,支持 HTTP 和 UDP syslog 日志接入、全文搜索、脱敏处理、保留策略和内置 Web UI。

Stars: 0 | Forks: 0

# Loglite Loglite 是一个用 Go 编写的轻量级日志聚合器,专为自有服务设计。它支持接收 HTTP 和 UDP syslog 事件,在存储前对常见的敏感信息进行脱敏处理,在内存中对日志文本和标签进行索引,应用保留策略,提供查询 API,并内置了 Web UI。 该项目在不使用 Python 的情况下实现了 Notion 项目 **"Лёгкий Log Aggregator"**。 ## 功能 - HTTP 日志接入:支持单个 JSON 事件、JSON 数组或 NDJSON。 - UDP syslog 接入,支持类 RFC3164 格式的解析。 - 每个事件均支持标签和字段。 - 支持对消息、标签、字段、级别和来源进行全文搜索。 - 查询过滤器支持 `level`、`label`、`since` 和 `limit`。 - 持久化前进行敏感信息脱敏。 - 采用仅追加(Append-only)的 JSONL 存储方式,并支持保留期清理。 - 内置 Web 查询 UI。 - Prometheus 文本格式的指标。 - 提供 Docker 镜像和带有日志生成功能的 docker-compose 演示。 ## 运行 ``` go run ./cmd/loglite --listen :8080 --syslog :5514 --store data/loglite.jsonl --retention 24h ``` 打开: ``` http://localhost:8080 ``` ## 接入日志 HTTP: ``` curl.exe -X POST http://localhost:8080/api/logs ` -H "content-type: application/json" ` -d "{\"level\":\"error\",\"message\":\"login failed password=hunter2\",\"labels\":{\"service\":\"auth\",\"env\":\"dev\"}}" ``` Syslog: ``` "<13>Jun 21 10:11:12 dev-host sshd[42]: Failed password for root" | nc -u -w1 127.0.0.1 5514 ``` ## 搜索 ``` curl.exe "http://localhost:8080/api/search?q=failed&label=service=auth&level=error&since=1h&limit=50" ``` ## 指标 ``` curl.exe http://localhost:8080/api/metrics ``` ## Docker 演示 ``` docker compose -f examples/docker-compose.yml up --build ``` compose 演示启动了 Loglite、一个 HTTP 日志生成器和一个 UDP syslog 生成器。 ## 开发 ``` go test ./... go build -o bin/loglite.exe ./cmd/loglite ``` ## 安全范围 Loglite 适用于来自您自有系统和经授权的实验室服务的日志。尽管在存储前已启用脱敏功能,但最佳实践依然是:避免将原始的生产环境敏感信息发送到任何日志流水线中。 ## 项目结构 ``` cmd/loglite CLI entry point internal/model Log entry model internal/redact Secret redaction internal/store JSONL store and in-memory index internal/syslog UDP syslog parser internal/server HTTP API, metrics, and web UI docs/ Architecture and demo notes examples/ Docker Compose demo ```
标签:EVTX分析, Go, Ruby工具, 数据检索, 日志审计, 日志聚合, 日志脱敏, 时序数据库, 自定义请求头, 请求拦截, 运维工具