自动化事故响应平台

一个AI原生的可观察性和修复平台,旨在自动化电子商务微服务故障的根本原因分析和事故解决。

  • by Vinaykiran1819
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Vinaykiran1819/Autonomous_Incident_Response_Platform_MCP

使用说明

自主事件响应平台(MCP驱动的代理SRE)

一个人工智能原生的可观察性和补救平台,旨在自动化电子商务微服务故障的根本原因分析和事件解决。该平台利用 模型上下文协议(MCP) 以消除工程师在系统停机期间通常花费在诊断根本原因上的人工时间。在收到警报后,系统会自动协调一组人工智能代理来分析分布式日志、检查数据库性能并执行基础设施补救。它通过GitHub报告和Slack通知同时记录整个过程。


🚀 问题

在高流量电子商务平台中,停机会导致即时收入损失。传统上,当微服务层发生故障时,专业SRE必须手动:

  • 筛选数千条日志行。

  • 查询数据库以检查锁或延迟。

  • 检查Docker容器的运行状况。

  • 审核GitHub上最近的代码更改。

这个过程很耗时,容易出现人为错误。


🧠 人工智能解决方案(MCP架构)

为了加速恢复,我使用模型上下文协议(MCP)构建了一个AI助手。该助手充当SRE的助手,提供可以与整个系统堆栈交互的统一推理引擎。

MCP服务器(专业部门)

  • 日志分析师(Python):自动解析共享日志,以识别各种微服务中的错误模式。

  • 数据库检查器(Python/SQL):调查查询性能并终止“卡住”的进程。

  • 基础架构管理器(TypeScript):监控Docker运行状况并执行外科手术容器重启。

  • GitHub哨兵:审核最近的提交,并创建事件问题供人工审查。

  • 通知服务:通过Slack/Teams向利益相关者提供实时更新。

主机和客户端定义

  • 主机:Claude Desktop/自定义Python客户端(管理MCP生命周期的环境)。

  • 客户端:MCP SDK集成到主机中,充当AI和本地进程之间的桥梁。

  • AI 代理Claude 3.5 Sonnet LLM,提供选择正确工具的推理逻辑。


🏗 系统架构


⚡ 警报解决工作流

该平台旨在自动处理事件响应的“繁重任务”:

  1. 检测: 当仪表板中触发警报时,用户与claude Desktop(主机)交互以调查特定的服务故障。
  2. 自主诊断: 人工智能使用 日志分析员 和 数据库检查器 在几秒钟内找到根本原因。
  3. 自动修复: 人工智能执行精确的修复,例如通过以下方式杀死特定被阻止的数据库PID 数据库检查器工具 或通过以下方式重新启动崩溃的容器 基础设施管理器工具.
  4. 审核与通知: 系统同时将完整的事故报告发布到 GitHub 问题 并将修复摘要发送到 Slack,让人类团队随时了解情况,而不需要他们的人工干预。

🚀 主要特点

  • 自主分类: AI代理分析结构化JSON日志,以确定根本原因,而无需人工工程师干预。
  • 数据库自愈: 能够检测和终止导致系统范围挂起的卡住的数据库进程(PID)。
  • 安全护栏: 实现 人类在循环(HITL) 安全检查,需要在AI执行容器重启等破坏性操作之前进行明确确认。
  • Polyglot集成: 基于Python的数据分析和基于Node.js的基础设施管理无缝结合,统一在一个协议下。

🛠️ 微服务事件和工具映射

该平台监控构成电子商务应用程序支柱的三个关键微服务:

微服务 责任 事件示例 推荐的MCP服务器
身份验证服务 管理用户会话和身份。 403 Forbidden: Token Issuer Mismatch 日志分析员
库存服务 跟踪库存水平和预订情况。 504 Gateway Timeout: Database Lock 日志分析员, DB检查员
支付服务 处理金融交易。 Container Exit: Out of Memory (OOM) 日志分析员, 基础设施经理

🛠 技术栈

类别 工具
协议 模型上下文协议(MCP)
语言 Python 3.9、TypeScript、Node.js
基础设施 Docker、Docker Compose、PostgreSQL
图书馆 Pandas、FastAPI、Dockode、Psycopg2
通知 Slack Webhooks,GitHub API

📖 入门指南

1.先决条件

  • 已安装Docker和Docker Compose。
  • MCP兼容客户端(如Claude Desktop)。
  • GitHub个人访问令牌和Slack Webhook URL。

2.配置

创建一个 .env 基于提供的示例,根目录中的文件:

GITHUB_TOKEN=your_github_token
REPO_OWNER=your_username
REPO_NAME=your_repo_name
SLACK_WEBHOOK_URL=your_slack_webhook

3.部署

docker-compose up -d

将位于MCP-servers/目录中的MCP服务器连接到您的客户端配置,以开始自主监控。

示例用例

脚本: 电子商务平台在结账页面上显示504个网关超时。客户无法完成购买。