hermes update
hermes update
This commit is contained in:
@@ -0,0 +1,153 @@
|
||||
# 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:
|
||||
|
||||
```bash
|
||||
python3 /mnt/user/services/homelab/ops/hermes-agent/scripts/check_health.py
|
||||
```
|
||||
|
||||
Fuer einen gezielten Service:
|
||||
```bash
|
||||
python3 /mnt/user/services/homelab/ops/hermes-agent/scripts/check_health.py <service-key>
|
||||
```
|
||||
|
||||
Fuer den Gesamtstatus (Tier 1+2):
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
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)
|
||||
Reference in New Issue
Block a user