Admin Runbook · KI-Plattform¶
Operative Anleitung für Tenant-Admins zur täglichen/wöchentlichen Wartung.
Daily Checks (5 Min)¶
1. Health-Dashboard¶
Alle Services sollten 🟢 GRÜN sein. Bei ROT: - Container neu starten via Dozzle (logs.{tenant})
- Oder SSH: docker restart $name
2. LiteLLM-Spend-Check¶
- Tagesumsatz < 50€? OK. - Top-Spender: User mit überproportional hohem Spend → Hinweis senden.3. Langfuse-Dashboard¶
- Anomalien: ungewöhnlich lange Antworten? Prompt-Probleme? - Top-Errors: wiederkehrende Fehler in einem System-Prompt?Weekly Tasks (30 Min)¶
1. Container-Updates prüfen¶
ssh admin@spark-dev-01
cd /opt/rm-ki-appliance/repo/overrides/dev
docker compose pull
# manuell: pro Container Changelog prüfen, dann
docker compose up -d
2. Volume-Größen-Check¶
docker system df -v | head -50
# Bei >80% einer Volume: Logs/Cache rotieren
docker exec open-webui find /app/backend/data/cache -mtime +30 -delete
3. Backup-Verifikation¶
docker exec restic-backup restic snapshots --last 7
# Sollte 7 tägliche Snapshots zeigen
docker exec restic-backup restic check --read-data-subset=10%
4. User-Audit¶
docker exec open-webui sqlite3 /app/backend/data/webui.db \
"SELECT email, role, datetime(last_active_at, 'unixepoch') FROM user ORDER BY last_active_at DESC"
# Inactive >90 Tage? Mit User klären, ggf. Lizenz freigeben
Monthly Tasks (2-4h)¶
1. Compliance-Report¶
- Wird automatisch generiert am 1. des Monats via n8n-Workflow
compliance-agent.json - Review + Sign-Off durch DSB
2. Modell-Performance-Review¶
- Welche Modelle wurden am meisten genutzt?
- Welche haben die höchste Error-Rate?
- Welche neuen Modelle in OpenRouter sind interessant? → LiteLLM-Config update
3. Kosten-Optimierung¶
- Pro User: Cost/Token-Verhältnis
- Anomalien: 1 User generiert 50% der Kosten? → Use-Case prüfen, evtl. lokales Modell anbieten
- Monatliches Cloud-Spend < 200€? OK. Sonst Intent-Router-Tuning.
4. KB-Hygiene¶
- Alle KBs auf Aktualität prüfen
- Veraltete Files identifizieren (z.B.
created_at < 1 Jahr) - Embedding-Re-Index bei Modell-Wechsel
Quarterly Tasks (1 Tag)¶
1. Disaster-Recovery-Übung¶
- Test-Restore aus Restic-Backup auf Sandbox-VM
- RTO messen (Soll: < 4h)
- RPO bestätigen (Soll: < 24h)
2. Penetration-Test¶
- Trivy-Scan aller Container-Images
- CrowdSec-Reports der letzten 90 Tage analysieren
- Cloudflare-WAF-Stats: Blocked-Requests-Pattern verstehen
3. Compliance-Audit¶
- ROPA aktualisieren (Art. 30 DSGVO)
- DSFA für neue High-Risk-Use-Cases
- 21 CFR Part 11 Validierung der Audit-Trails
Incident Response¶
Container-Restart-Loop¶
docker logs --tail 50 $container | head -20
# Häufigste Ursachen:
# 1. Mount-Race: rm -rf overrides/dev/$service/$file && git checkout HEAD -- overrides/dev/
# 2. Config-Fehler: config.yaml prüfen
# 3. DB nicht erreichbar: Postgres-Healthcheck
# 4. Image-Update inkompatibel: Vorherige Version pinnen
LiteLLM nicht erreichbar¶
docker logs --tail 30 litellm
# Häufigste Ursachen:
# 1. config.yaml Syntax-Fehler → YAML-Validierung
# 2. Postgres down → docker restart litellm-postgres
# 3. Provider-Key invalid → curl mit dem Key direkt testen
OWUI Login schlägt fehl¶
docker exec open-webui sqlite3 /app/backend/data/webui.db \
"SELECT email, role FROM user WHERE email LIKE '%@%'"
# Falls Account fehlt:
# - Keycloak-User existiert? https://auth.{tenant}/admin
# - SSO-Mapping korrekt? → admin Settings → Connections → OAuth
Mount-Race bei Hub-Containern¶
Standard-Procedure (in Plattform-Berater Chatbot dokumentiert):
cd /opt/rm-ki-appliance/repo
for d in overrides/dev/hub overrides/dev/hub-kg overrides/dev/impulse-suite overrides/dev/kpi-mining; do
for f in "$d"/*.html "$d"/*.conf; do [ -d "$f" ] && rm -rf "$f"; done
done
git checkout HEAD -- overrides/dev/
docker rm -f hub hub-kg impulse-suite kpi-mining
cd overrides/dev && docker compose --env-file ../../config/dev.env -f docker-compose.dev-stack.yml up -d
docker restart cloudflared
Key Files¶
| Pfad | Zweck |
|---|---|
/opt/rm-ki-appliance/repo/ |
GitOps-Source-Repo |
/opt/rm-ki-appliance/config/dev.env |
All secrets + provider keys |
/var/lib/docker/volumes/dev_*-data/ |
Persistent volumes |
/etc/cloudflared/config.yml |
Tunnel-Config |
Escalation¶
| Schweregrad | Reaktion |
|---|---|
| 🟢 Info | Eintragen ins Wiki |
| 🟡 Warning | Daily-Check ausreichend |
| 🟠 High | Sofort Tenant-Admin alarmieren |
| 🔴 Critical | DSB + GF + IT-Lead in <1h |