Was macht sre-ai-copilot?
KI-gesteuerter Incident-Response-Copilot für Kubernetes. AlertManager Webhook → Agenten-Pipeline (Analyzer/Hypothesis/Critic/Fix/Risk) → Menschliche Genehmigung. FastAPI + Celery + LLM, k8s-Namespace-Schutzmaßnahmen.
Überblick
Dieses Skill bietet eine vollständige Pipeline zur automatisierten Verarbeitung von AlertManager-Benachrichtigungen in Kubernetes. Es analysiert Incidents, generiert Hypothesen, bewertet diese kritisch, schlägt Korrekturen vor und bewertet Risiken – bevor eine Aktion durch menschliche Genehmigung freigegeben wird.
Funktionsweise
- Webhook-Empfang: Der FastAPI-Server empfängt Webhooks von AlertManager.
- Analyse: Der Analyzer-Agent untersucht den eingehenden Alert und sammelt relevante Kontextinformationen aus dem Kubernetes-Cluster.
- Hypothesenbildung: Der Hypothesis-Agent generiert mögliche Ursachen für den Incident.
- Kritik: Der Critic-Agent bewertet die Hypothesen auf Plausibilität und priorisiert sie.
- Korrektur: Der Fix-Agent erstellt einen Abhilfeplan (z. B. Skalierung eines Deployments, Neustart eines Pods).
- Risikobewertung: Der Risk-Agent bewertet die Risiken des vorgeschlagenen Fixes.
- Menschliche Genehmigung: Der Plan wird einem Menschen zur Freigabe vorgelegt, bevor er ausgeführt wird.
Voraussetzungen
- Python 3.10+
- FastAPI
- Celery (mit einem Broker wie Redis oder RabbitMQ)
- Zugriff auf einen Kubernetes-Cluster
- LLM-Service (z. B. OpenAI, Anthropic, oder lokales Modell)
- AlertManager-Instanz mit Webhook-Konfiguration
Installation
pip install fastapi celery redis kubernetes requests openai
Konfiguration
Die Konfiguration erfolgt über Umgebungsvariablen:
| Variable | Beschreibung | Standardwert |
|---|---|---|
K8S_NAMESPACE_WHITELIST | Komma-separierte Liste der erlaubten Namespaces | default |
LLM_API_KEY | API-Schlüssel für das LLM | – (erforderlich) |
LLM_MODEL | Modellname | gpt-4 |
CELERY_BROKER_URL | Celery-Broker-URL | redis://localhost:6379/0 |
ALERTMANAGER_WEBHOOK_PATH | Webhook-Endpunkt-Pfad | /webhook |
Verwendung
Starten des FastAPI-Servers
uvicorn main:app --host 0.0.0.0 --port 8080
Starten des Celery-Workers
celery -A tasks worker --loglevel=info
Konfiguration von AlertManager
receivers:
- name: 'sre-copilot'
webhook_configs:
- url: 'http://<copilot-host>:8080/webhook'
send_resolved: false
Sicherheitshinweise
- Stellen Sie sicher, dass der Webhook-Endpunkt nur von vertrauenswürdigen Quellen erreichbar ist.
- Der Namespace-Whitelist verhindert versehentliche Aktionen in production-kritischen Namespaces.
- Jeder ausgeführte Schritt protokolliert alle relevanten Informationen in einer Datenbank (optional).
- Für die LLM-Kommunikation wird HTTPS empfohlen.
Lizenz
MIT