hermes update
4.6 KiB
Skill: homelab-ops-monitor
Zweck
Dieser Skill macht Hermes zum kontextuellen Ops-Assistenten fuer das Kallilabcore-Homelab. Wenn ein Container unhealthy wird, liefert dieser Skill keine rohe Fehlermeldung, sondern einen angereicherten Alert: Was ist kaputt, welche Abhaengigkeiten sind betroffen, wie alt ist der letzte Backup-Dump, und was ist der erste konkrete Diagnoseschritt.
Wann aktivieren
- Wenn ein Container unhealthy gemeldet wird (manuell oder via Cronjob)
- Wenn der Benutzer fragt: "Was ist kaputt?" / "Was ist mit [Service]?"
- Wenn ein proaktiver Health-Check ausgefuehrt werden soll
- Wenn ein ntfy-Alert angereichert werden soll bevor er gesendet wird
Kernprinzipien
- Immer check_health.py ausfuehren — nie raten, immer messen.
- Kontext aus services.yaml — Abhaengigkeiten und Dump-Info sind dort definiert.
- ntfy-Alert nur wenn wirklich etwas unhealthy ist — kein Alert-Spam.
- Tier 1 = urgent, Tier 2 = high, Tier 3 = default — ntfy Priority entsprechend setzen.
- Kein Schreiben, kein Neustart — dieser Skill diagnostiziert, handelt nicht.
Ausfuehrungsschritte
Schritt 1 — Health-Check ausfuehren
Fuehre via Terminal (SSH) auf dem Host aus:
python3 /mnt/user/services/homelab/ops/hermes-agent/scripts/check_health.py
Fuer einen gezielten Service:
python3 /mnt/user/services/homelab/ops/hermes-agent/scripts/check_health.py <service-key>
Fuer den Gesamtstatus (Tier 1+2):
python3 /mnt/user/services/homelab/ops/hermes-agent/scripts/check_health.py --summary
Schritt 2 — JSON-Output interpretieren
Der Report enthaelt je Service:
tier— Kritikalitaet (1=Control Plane, 2=App, 3=Ops)container.healthy— aktueller Gesundheitsstatusunhealthy_deps— Liste der ebenfalls unhealthy Abhaengigkeitendump.age_hours— Alter des letzten Dumps in Stunden (>26h = Warnung)dump.warn— true wenn Dump veraltetfirst_check— erster Diagnoseschritt laut service catalognotes— betriebliche Hinweise
Schritt 3 — ntfy-Alert bauen
Baue eine ntfy-Nachricht nach diesem Format:
[Titel]
[Tier-Emoji] [service-key] unhealthy (Tier [N])
Beschreibung: [description]
Abhaengigkeiten:
[✅/❌] [dep-key] — [status]
Letzter Dump: [age_hours]h alt [✅/⚠️] (oder: kein Dump konfiguriert)
Erster Check:
[first_check]
Hinweis: [notes]
Tier-Emojis: Tier 1 = 🔴, Tier 2 = 🟠, Tier 3 = 🟡 Dump-Warnschwelle: >26 Stunden = ⚠️
Schritt 4 — ntfy senden
curl -s \
-H "Title: [Tier N] [service-key] unhealthy" \
-H "Priority: [urgent|high|default]" \
-H "Tags: [warning,tier1|tier2|tier3]" \
-d "[message]" \
https://ntfy.kaleschke.info/homelab-alerts
ntfy Prioritaeten:
- Tier 1 →
urgent - Tier 2 →
high - Tier 3 →
default
Sonderfaelle
Unbekannter Container (nicht in services.yaml)
-> Alert senden mit Hinweis "nicht in services.yaml — bitte aktualisieren"
-> services.yaml Pfad: /mnt/user/services/homelab/ops/hermes-agent/services.yaml
ntfy selbst ist unhealthy
-> Alert kann nicht per ntfy gesendet werden -> Hermes sendet stattdessen via Telegram (falls konfiguriert) -> Nachricht: "KRITISCH: ntfy ist unhealthy — kein Push-Alerting aktiv"
Alle Tier-1-Abhaengigkeiten unhealthy
-> Wahrscheinlich kein isoliertes Problem — Host oder Netzwerk pruefen -> Zusammenfassenden Alert senden statt Einzel-Alerts
check_health.py nicht gefunden
-> Meldung: "Script nicht gefunden unter /mnt/user/services/homelab/ops/hermes-agent/scripts/check_health.py" -> Pruefe ob Komodo den Stack zuletzt deployed hat
Cronjob-Empfehlung
Fuer automatische Checks ohne Uptime-Kuma-Webhook:
# Jede Stunde — prueft alle unhealthy Container
0 * * * * python3 /mnt/user/services/homelab/ops/hermes-agent/scripts/check_health.py
# Taeglich 07:00 — Gesamtstatus Tier 1+2
0 7 * * * python3 /mnt/user/services/homelab/ops/hermes-agent/scripts/check_health.py --summary
Nicht-Ziele dieses Skills
- Kein automatischer Neustart von Containern
- Kein Schreiben in Compose-Dateien oder Konfigurationen
- Kein Deploy via Komodo
- Keine Diagnose-Tiefe jenseits des
first_check-Hinweises (das ist Aufgabe des Benutzers)
Verwandte Skills und Ressourcen
kallilab-homelab-ops— Governance-Skill fuer Aenderungsentscheidungenservices.yaml— Wissensbasis:/mnt/user/services/homelab/ops/hermes-agent/services.yamlcheck_health.py— Ausfuehrungs-Script:/mnt/user/services/homelab/ops/hermes-agent/scripts/check_health.py- Repo:
https://git.kaleschke.info(origin/master)