SanskrutiChavan/ShadowDeploy

GitHub: SanskrutiChavan/ShadowDeploy

一个基于本地大语言模型的 Kubernetes 事件响应平台,自动检测 Pod 故障并进行 AI 根因分析、告警通知与指标可视化。

Stars: 0 | Forks: 0

**ShadowDeploy - 基于 AI 的 Kubernetes 事件响应平台** ShadowDeploy 是一个基于 AI 的 Kubernetes 事件响应平台,能够自动检测 pod 故障、收集日志、使用本地运行的大型语言模型 执行根因分析、通过 FastAPI 将事件存储在 SQLite 中、发送电子邮件警报,并使用 Prometheus 和 Grafana 可视化操作指标。 与基于云的 AI 解决方案不同,ShadowDeploy 完全在本地运行,确保了隐私性、低成本且无外部 API 依赖。 **功能** \- 自动检测 Kubernetes pod 故障 \- 收集 pod 日志 \- 使用 Ollama 进行基于 AI 的根因分析 \- 将事件存储在 SQLite 中 \- FastAPI REST API \- HTML 电子邮件警报 \- Prometheus 指标 \- Grafana Dashboard \- 完全本地化(无需 OpenAI API) \-------------------------------------------------------------------------------------------------------------- **架构** Kubernetes │ ▼ ShadowDeploy Watcher │ ▼ Log Collector │ ▼ Ollama (Local LLM) │ ▼ FastAPI API │ ▼ SQLite Database │ ├────────► Email Alerts │ ▼ Prometheus │ ▼ Grafana Dashboard \-------------------------------------------------------------------------------------------------------------- **技术栈** 组件 技术 语言 Python 3.11 容器编排 Kubernetes (Minikube) API FastAPI AI Ollama (Mistral / Llama3) 数据库 SQLite 监控 Prometheus 可视化 Grafana 警报 Gmail SMTP 容器运行时 Docker 包管理器 Helm \-------------------------------------------------------------------------------------------------------------- **支持的故障类型** \- CrashLoopBackOff \- ImagePullBackOff \- ErrImagePull \- OOMKilled \- FailedScheduling \- Failed Health Checks \- Missing Environment Variables \-------------------------------------------------------------------------------------------------------------- **项目结构** shadowdeploy/ ├── agent/ │ ├── __init__.py # Python 包标记 │ ├── watcher.py # Kubernetes pod 故障监视器(核心循环) │ ├── log_collector.py # 发生故障时收集 pod 日志 │ ├── ai_analyzer.py # 用于根因分析的 Ollama LLM 集成 │ ├── alert_sender.py # 通过 smtplib 发送 HTML 电子邮件警报 │ └── metrics.py # Prometheus gauge 指标 ├── api/ │ ├── __init__.py │ ├── main.py # FastAPI 应用程序入口点 │ ├── database.py # SQLite 连接和操作 │ ├── models.py # Pydantic 请求/响应模型 │ └── routes/ │ ├── incidents.py # GET + POST /api/incidents │ ├── stats.py # GET /api/stats │ └── health.py # GET /health ├── apps/ │ ├── missing-env/ # 应用 1:因缺少环境变量而崩溃 │ ├── crashloop/ # 应用 2:随机崩溃 │ ├── oom-kill/ # 应用 3:内存泄漏 │ └── bad-port/ # 应用 5:健康检查端口错误 ├── k8s/ │ ├── failing-apps/ # 所有 5 种故障的 Kubernetes 清单 │ └── shadowdeploy/ # ShadowDeploy agent 本身的清单 ├── monitoring/ │ ├── prometheus-values.yaml │ └── grafana-dashboard.json ├── database/ # SQLite .db 文件(被 git 忽略) ├── config.py # 中央配置 — 读取 .env ├── requirements.txt # 所有 Python 依赖项 ├── .env # 密钥 — 绝不提交到 git ├── .env.example # 为贡献者提供的安全模板 ├── .gitignore └── README.md \-------------------------------------------------------------------------------------------------------------- **前置条件** \- Python 3.11+ \- Docker Desktop \- Minikube \- kubectl \- Helm \- Ollama \-------------------------------------------------------------------------------------------------------------- **安装说明** 克隆代码库 git clone https://github.com/SanskrutiChavan/ShadowDeploy.git cd shadowdeploy 创建虚拟环境 python -m venv venv 激活 Windows venv\\Scripts\\activate Linux/macOS source venv/bin/activate 安装依赖项 pip install -r requirements.txt 复制环境文件 copy .env.example .env 安装 Ollama 模型 ollama pull mistral 启动 Minikube minikube start 部署示例应用程序 minikube docker-env --shell powershell | Invoke-Expression docker build -t bad-port-app:latest ./apps/bad-port docker build -t crashloop-app:latest ./apps/crashloop docker build -t missing-env-app:latest ./apps/missing-env docker build -t oom-kill-app:latest ./apps/oom-kill docker build -t bad-image-app:latest ./apps/bad-image kubectl apply -f k8s/failing-apps/ \-------------------------------------------------------------------------------------------------------------- 运行项目 终端 1 ollama serve 终端 2 uvicorn api.main:app --reload --port 8000 终端 3 python -m agent.watcher \-------------------------------------------------------------------------------------------------------------- API Swagger UI http://localhost:8000/docs 指标 http://localhost:8000/metrics ## 统计信息 http://localhost:8000/api/stats 监控 Prometheus minikube service monitoring-kube-prometheus-prometheus ## Grafana minikube service monitoring-grafana 未来增强功能 \- Telegram 通知 \- Slack 集成 \- Microsoft Teams 警报 \- 事件自动修复 \- 多集群监控 \- PostgreSQL 支持 \- Kubernetes Operator \- AI 生成的根因分析报告 (PDF) \- 基于角色的身份验证 \- React Dashboard \-------------------------------------------------------------------------------------------------------------- 由 Sanskruti Nainesh Chavan 和 Pranav Chaudhari 构建
标签:AI风险缓解, AV绕过, FastAPI, Grafana, 子域名突变, 故障排查, 本地大模型, 自定义请求头, 请求拦截, 运维监控, 逆向工具