Files
homelab-infra/ops/hermes-agent/skills/homelab-ops-monitor.md
T
Micha 0aa8138bdd hermes update
hermes update
2026-05-06 19:13:52 +02:00

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

  1. Immer check_health.py ausfuehren — nie raten, immer messen.
  2. Kontext aus services.yaml — Abhaengigkeiten und Dump-Info sind dort definiert.
  3. ntfy-Alert nur wenn wirklich etwas unhealthy ist — kein Alert-Spam.
  4. Tier 1 = urgent, Tier 2 = high, Tier 3 = default — ntfy Priority entsprechend setzen.
  5. 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 Gesundheitsstatus
  • unhealthy_deps — Liste der ebenfalls unhealthy Abhaengigkeiten
  • dump.age_hours — Alter des letzten Dumps in Stunden (>26h = Warnung)
  • dump.warn — true wenn Dump veraltet
  • first_check — erster Diagnoseschritt laut service catalog
  • notes — 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 Aenderungsentscheidungen
  • services.yaml — Wissensbasis: /mnt/user/services/homelab/ops/hermes-agent/services.yaml
  • check_health.py — Ausfuehrungs-Script: /mnt/user/services/homelab/ops/hermes-agent/scripts/check_health.py
  • Repo: https://git.kaleschke.info (origin/master)