Skip to content

Admin Runbook · KI-Plattform

Operative Anleitung für Tenant-Admins zur täglichen/wöchentlichen Wartung.

Daily Checks (5 Min)

1. Health-Dashboard

https://uptime.{tenant}/
Alle Services sollten 🟢 GRÜN sein. Bei ROT: - Container neu starten via Dozzle (logs.{tenant}) - Oder SSH: docker restart $name

2. LiteLLM-Spend-Check

https://litellm.{tenant}/  (Login mit MASTER_KEY)
- Tagesumsatz < 50€? OK. - Top-Spender: User mit überproportional hohem Spend → Hinweis senden.

3. Langfuse-Dashboard

https://trace.{tenant}/
- 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