日志分析服务

AutoRCA是一款用于自动检测、分析和解决系统事件的日志和指标分析服务,适用于SRE团队和开发人员。

  • by achuajays
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 achuajays/AutoRC-mcp

使用说明

AutoRCA MCP服务器🔍

日志、指标和事件的根本原因分析引擎。

AutoRCA是一种模型上下文协议(MCP)服务器,旨在帮助SRE团队和开发人员自动化系统事件的检测、分析和解决。它接收日志和指标,将其关联以检测异常,并使用概率逻辑生成根本原因分析(RCA)报告和修复建议。

🌟 特性

  • 数据摄取:无缝摄取应用程序日志和标准指标(CPU、内存)。
  • 事件相关性:通过分析最近的错误日志和峰值指标来自动检测事件。
  • 概率RCA:根据发现的类型(例如,特定的错误模式或资源耗尽)生成根本原因报告。
  • 可操作的修复:为检测到的事件提出具体的补救措施。
  • 持久化存储:使用SQLite跨会话持久化数据。
  • 查询和筛选:用于搜索日志、查看指标和列出过去事件的工具。

🏗️ 建筑

graph TD
    User[Client / Claude] -->|MCP Protocol| Server[AutoRCA Server]
    
    subgraph "AutoRCA MCP Server"
        Ingest[Ingestion Tools]
        Analyze[Analysis Engine]
        Query[Query Tools]
        DB[(SQLite Database)]
    end
    
    Server --> Ingest
    Server --> Analyze
    Server --> Query
    
    Ingest -->|Write| DB
    Analyze -->|Read/Write| DB
    Query -->|Read| DB

🔄 工作流程

sequenceDiagram
    participant User
    participant MCP as AutoRCA Server
    participant DB as SQLite
    
    User->>MCP: ingest_logs(...)
    MCP->>DB: INSERT logs
    
    User->>MCP: ingest_metrics(...)
    MCP->>DB: INSERT metrics
    
    User->>MCP: correlate_incident(window=15m)
    MCP->>DB: SELECT recent data
    MCP->>MCP: Check logic (Errors > 0 OR High Metrics)
    alt Incident Detected
        MCP->>DB: Log Incident
        MCP-->>User: Incident ID (INC-123)
    else Normal
        MCP-->>User: No incidents found
    end
    
    User->>MCP: generate_rca(INC-123)
    MCP->>DB: Read Incident Details
    MCP-->>User: Probabilistic RCA Report
    
    User->>MCP: suggest_fix(INC-123)
    MCP-->>User: Suggested Remediation

🛠️ 工具

工具 说明
ingest_logs 存储日志行列表。
ingest_metrics 存储度量(名称、值)。
correlate_incident 分析最近的数据(默认15分钟)以发现问题。
generate_rca 获取特定事件ID的根本原因报告
suggest_fix 获取特定事件ID的修复建议
search_logs 按关键字搜索日志。
get_metrics 检索最近的指标,可选择按名称过滤。
list_incidents 查看最近检测到的事件列表。

🚀 入门指南

先决条件

  • Python 3.12+
  • uv (推荐)或 pip

安装

  1. 克隆存储库:

    git clone https://github.com/yourusername/AutoRCA.git
    cd AutoRCA
    
  2. 安装依赖项:

    uv sync
    # OR
    pip install "mcp[cli]"
    

用法

本地运行

uv run main.py

与Claude Desktop一起使用

将以下内容添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "auto-rca": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/AutoRCA",
        "run",
        "main.py"
      ]
    }
  }
}

🧪 测试

您可以使用MCP检查器交互式测试服务器:

npx @modelcontextprotocol/inspector uv run main.py