thiru0-0/loglens
GitHub: thiru0-0/loglens
LogLens 是一款基于 LLM 的日志分析平台,通过自动解析原始服务器日志并生成 AI 驱动的根因分析与修复建议,帮助开发和运维工程师快速定位系统故障。
Stars: 0 | Forks: 0
# 🔍 LogLens
**AI 驱动的日志分析与事件响应**
LogLens 是一款功能强大的 AI 驱动的日志分析工具,旨在帮助软件工程师瞬间诊断服务器宕机、延迟降级和 API 故障。
通过将原始服务器日志粘贴到仪表板中,LogLens 会自动解析条目,计算关键系统健康指标,并利用先进的 Large Language Model (LLM) pipeline 生成全面、可操作的事件报告。告别在凌晨 2 点手动 grep 成千上万行日志的日子。
## ✨ 核心功能
- **自动日志解析:** 一个多层级引擎,可自动识别并从 JSON、Apache/Nginx 组合格式以及启发式纯文本日志中提取结构化数据。
- **智能聚合引擎:** 按 endpoint 对请求进行分组,计算确切的错误率,跟踪延迟趋势,识别级联服务故障,并检测在不抛出 HTTP 错误情况下的静默性能降级。
- **AI 驱动的根因分析:** 使用先进的 LLM(通过 OpenRouter)来关联故障,以特定的置信度诊断根因,并绘制出按时间顺序排列的故障时间线。
- **可操作的调试步骤:** 生成一个简洁的即时操作、调查路径和长期修复方案列表,并使用内联终端命令进行格式化。
- **交互式后续聊天:** 一个完全上下文感知、无状态的聊天界面,允许工程师对事件报告进行查询,请求特定的 `curl` 命令,或动态深入探讨受影响的服务。
- **美观且数据丰富的仪表板:** 高级深色模式 UI,包含严重性徽章、异常表,以及显示即时健康状况和恢复状态的顶级统计栏。
## 🏗️ 架构流程
LogLens 是作为解耦的全栈应用程序构建的,前端使用 **React (Vite)**,后端使用 **Node.js (Express)**。
### 1. 数据摄入(前端)
- 用户将原始日志(最多 10MB)粘贴到 React 应用程序的 `/analyze` 路由中。
- UI 处理加载状态,验证 payload,并将其安全地传输到后端 `/api/analyze` endpoint。
### 2. 处理流水线(后端)
- **`logParser.js`:** 原始文本进入解析器,该解析器级联应用解析策略(JSON → Apache/Nginx 正则表达式 → 启发式)。它提取标准化字段:`timestamp`、`method`、`endpoint`、`statusCode`、`latency_ms`、`service` 和 `upstream`。它还会标记 `detectedFormat`。
- **`logAggregator.js`:** 对标准化日志条目的数组进行处理以计算高级统计数据。它计算全局错误率,将时间线分割成桶以检测宕机,跟踪上游服务依赖关系,并标记跨越异常阈值的特定 endpoint。它还计算 `recoveryStatus`(根据最后的日志条目判断系统是“Ongoing”还是“Recovered”)。
- **`promptBuilder.js`:** 后端构建一个包含聚合指标的密集、高度结构化的 prompt。它执行严格的分析规则(例如,如果多个微服务同时失败,则指示 AI 诊断共享数据库故障)。
- **`aiService.js`:** 该 prompt 通过 OpenRouter 发送到 LLM。如果模型失败,该服务会处理自动故障转移。
- **`responseParser.js`:** AI 的 markdown 响应被解析为不同的 JSON 部分(执行摘要、根因、建议、时间线)。
### 3. 展示与交互(前端)
- 结构化报告和原始聚合统计数据返回到前端,并缓存在 `sessionStorage` 中。
- **`Results.jsx`:** React 仪表板动态渲染数据。它显示统计栏、带有计算错误率的异常表,以及从 AI 解析出的 markdown 部分。
- **`FollowUpChat.jsx`:** 用户可以提出有上下文的后续问题。为了确保对后端服务器重启的弹性,前端自动将整个 `reportContext` 传回 `/api/chat` 路由,确保 AI 永不丢失其上下文记忆。
## 演示视频
https://github.com/user-attachments/assets/4196a579-3911-4b89-b993-501933abdb4c
## 🚀 入门指南
### 前置条件
- Node.js (v18+)
- OpenRouter API Key(用于 AI 分析)
### 安装
1. **克隆仓库并安装依赖:**
# 安装 Backend 依赖
cd server
npm install
# 安装 Frontend 依赖
cd ../client
npm install
2. **配置环境变量:**
在 `server/` 目录中创建一个 `.env` 文件:
PORT=3001
OPENROUTER_API_KEY=your_openrouter_api_key_here
3. **启动应用程序:**
打开两个终端窗口。
**终端 1(后端):**
cd server
npm run dev
**终端 2(前端):**
cd client
npm run dev
4. **在浏览器中打开:**
导航到 `http://localhost:5173` 开始分析您的日志!
## 🛠️ 技术栈
- **前端:** React, Vite, Lucide-React (图标), Vanilla CSS
- **后端:** Node.js, Express
- **AI:** OpenRouter (支持 Llama 3, Claude, Gemini 等)
标签:AI辅助运维, API集成, GNU通用公共许可证, MITM代理, Node.js, React, Syscalls, 事故响应, 可观测性, 自定义脚本