Swayam2004/sentinel-incident-response

GitHub: Swayam2004/sentinel-incident-response

基于 Mastra 工作流引擎构建的 AI 事件响应 pipeline,结合 Qdrant 历史记忆检索、Enkrypt AI 安全门控和人工审核,实现从告警日志到结构化事后分析报告的端到端自动化。

Stars: 0 | Forks: 0

# Sentinel — AI 驱动的事件响应 Mastra × Qdrant × Enkrypt AI — 具备人工审核 (human-in-the-loop) 的端到端事件响应 pipeline。 ## 前置条件 | 工具 | 版本 | |---|---| | Node.js | ≥ 22.13.0 | | Python | ≥ 3.10 | | pip / uvicorn | 任意近期版本 | ## 账号设置(约 10-15 分钟,请先执行此操作) | 服务 | 注册 URL | 所需内容 | |---|---|---| | Qdrant Cloud | https://cloud.qdrant.io | 免费的集群 URL + API key | | Cohere | https://dashboard.cohere.com | API key (embeddings) | | Groq | https://console.groq.com | API key (LLM 调用) | | Enkrypt AI | https://app.enkryptai.com | API key | ## 第 1 步 — 环境变量 ``` cp .env.example .env # 编辑 .env 并填入您的真实 keys ``` 位于**仓库根目录**的 `.env` 文件会被 Mastra 开发服务器和 seed 脚本同时加载。所需变量: ``` GROQ_API_KEY=... COHERE_API_KEY=... QDRANT_URL=https://your-cluster.aws.cloud.qdrant.io QDRANT_API_KEY=... ENKRYPTAI_API_KEY=... SIDECAR_URL=http://localhost:8000 ``` ## 第 2 步 — 安装 Mastra 依赖 ``` cd sentinel npm install ``` ## 第 3 步 — 启动 Enkrypt AI sidecar(终端 1) sidecar 是一个 Python FastAPI 服务,用于封装 Enkrypt SDK(仅支持 Python)。在触发 workflow 运行**之前**,它必须处于运行状态。 ``` cd sidecar pip install -r requirements.txt # installs fastapi, uvicorn, enkryptai-sdk export ENKRYPTAI_API_KEY=your_key_here # or set in your shell profile uvicorn main:app --reload --port 8000 ``` 验证其是否健康: ``` curl localhost:8000/health # → {"status":"ok"} ``` 演示 block 行为: ``` curl -X POST localhost:8000/safety/remediation-check \ -H "Content-Type: application/json" \ -d '{"proposed_action":"rm -rf /var/data"}' # → {"pass":false,"blocked_reason":"Denylisted destructive pattern detected: 'rm -rf'"} ``` ## 第 4 步 — 为 Qdrant 导入数据(每个集群执行一次) 这会创建 `historical_incidents` 集合并插入 16 个合成的 SRE 事件。请在**仓库根目录**下运行,以便读取 `.env` 文件。 ``` # 从 repo 根目录 — 从 .env 加载 QDRANT_URL, QDRANT_API_KEY, COHERE_API_KEY pip install qdrant-client requests set -a && source .env && set +a python scripts/seed_qdrant.py # → 已将 16 个 incidents seed 到 'historical_incidents'。 ``` ## 第 5 步 — 运行 Mastra workflow(终端 2) ``` cd sentinel npm run dev ``` 在 `http://localhost:4111` 打开 **Mastra Studio**。 导航到 **Workflows → sentinel-incident-workflow** 并使用以下命令触发运行: ``` { "rawLog": "checkout-service p99 latency 4.2s, connection pool exhausted, 503s spiking since 14:02 UTC", "serviceId": "checkout-service" } ``` 实时观察各步骤的执行情况。workflow 将在 **`human-approval`** 处暂停——这是一个挂起/恢复 (suspend/resume) 门控。使用以下命令恢复运行: ``` { "approved": true, "approver": "your-name" } ``` 最终输出是一份结构化的 markdown 事后分析 (post-mortem) 报告。 ## 端口一览 | 服务 | 端口 | 用途 | |---|---|---| | Mastra Studio | `4111` | Workflow UI,触发及恢复运行 | | Enkrypt sidecar | `8000` | 安全检查 HTTP API | ## 暂时省略的内容(出于时间限制的有意为之) - **修复模拟器 (Remediation Simulator)** — K8s dry-run、eBPF 沙盒、合成指标注入。在 PRD §14.2 中作为黑客松后的路线图记录。 - **Redis** — 使用 Mastra 默认的本地存储(LibSQL/DuckDB)来代替处理挂起/恢复 (suspend/resume) 状态。 - **Postgres 审计跟踪** — 使用控制台输出代替演示。 - **Cohere Rerank** — 原始余弦分数驱动 0.75 阈值;Rerank 将作为快速跟进项(PRD §5.3)。 - **Memory 更新 Worker** — 目前 Qdrant 的数据导入是手动的;事后分析 (post-mortem) 的自动摄取已列入路线图。 这些省略均不会影响三项强制集成:Mastra 负责编排,Qdrant 负责检索,Enkrypt AI 负责门控。这些都在正常运行。
标签:AI运维, MITM代理, RAG, SRE自动化, 工作流自动化, 自动化攻击, 逆向工具