mayurhalai/incident-response-assistant

GitHub: mayurhalai/incident-response-assistant

这是一个MCP服务器,帮助站点可靠性工程师在Kubernetes环境中安全地进行事件响应,通过AI辅助调查和缓解警报。

Stars: 0 | Forks: 0

# 事件响应助手(MCP 服务器) 受 [谷歌 SRE 如何使用 Gemini CLI 解决真实世界故障]() 文章的启发,我构建了这个 MCP 服务器,以演示 AI 在 Kubernetes 环境中进行事件响应的能力。 事件响应助手是一个模型上下文协议 (MCP) 服务器,旨在帮助站点可靠性工程师 (SRE) 处理实时事件。它通过将 Kubernetes 的诊断和补救能力直接暴露给大语言模型,使 AI 能够调查警报、遵循结构化的预案手册,并在严格的授权保护下安全地执行缓解操作。 ## 功能与特性 该服务器提供了一套 MCP 能力,使大语言模型能够理解集群状态并采取行动: ### 提示 (Prompts) * `investigate`:针对特定警报启动调查,收集实时和历史上下文,并建议相关的缓解预案。 * `generate-postmortem`:根据调查历史和已采取的操作,生成一份正式的、结构化的总结报告。 ### 工具 (Tools) * `get_alerts`:直接从 Alertmanager 检索当前活动的警报。 * `recent_alerts`:从 Prometheus 检索近期的历史警报,以识别抖动或过去的问题。 * `list_playbooks`:发现可用的事件响应预案及其描述。 * `show_playbook`:检索特定预案的完整 Markdown 内容和结构化元数据。 * `run_playbook_action`:使用给定参数执行预定义的 Kubernetes 操作(例如,获取日志、重启 Pod),并需通过 OPA 策略检查。 ## 通过预案手册引导缓解 助手不依赖大语言模型猜测要采取的行动,而是使用结构化的、基于 Markdown 的预案手册来引导缓解过程。 例如,像 `pod-crashloopbackoff` 或 `high-memory-usage` 这样的预案手册定义了大语言模型要遵循的具体步骤。它们规定了首先运行哪些诊断操作(如获取日志或描述 Pod),并明确列出了批准的补救步骤。这确保了 AI 遵循您组织的标准操作程序。 ## 安全与授权(OPA 策略) 为确保大语言模型在事件处理期间不会造成进一步损害,所有通过 `run_playbook_action` 执行的操作都由一个嵌入式的 Open Policy Agent (OPA) 引擎使用 Rego 策略进行门控。 该服务器使用**分层策略系统**: 1. **诊断操作**:只读操作(如 `get-pod-logs` 或 `describe-deployment`)被广泛允许,确保大语言模型始终可以收集上下文。 2. **补救操作**:可变操作(如 `restart-pod` 或 `scale-deployment`)受到严格保护。例如,保护机制确保受保护的命名空间(如 `kube-system`、`istio-system`)不能被修改,并且像扩容这样的破坏性操作有硬性限制(例如,最多 5 个副本)。 ## 设置 为您的代理添加 MCP 配置。例如,Gemini CLI 配置: ``` { "mcpServers": { "incident-response": { "command": "/incident-response-assistant/bin/server" } }, "tools": { "exclude": ["run_shell_command"] } } ``` ## 演示:人工制造的故障 要查看助手的实际效果,请查看 `demo/` 目录中的文件。此目录包含一个由人工制造的故障(WordPress 部署的高错误率)所生成的示例运行记录。 您可以查看原始的对话记录以及最终由 AI 生成的总结报告,以了解大语言模型如何使用工具、遵循预案手册并成功缓解问题。
标签:AI辅助运维, Alertmanager, EVTX分析, OPA, 事后分析, 云原生运维, 人工智能, 剧本管理, 大型语言模型, 子域名突变, 故障诊断, 模型上下文协议, 用户模式Hook绕过, 站点可靠性工程, 结构化剧本, 结构化提示词, 缓解措施, 自定义请求头, 警报调查, 运维自动化, 集群监控, 靶场