Reachability-Hint¶
Wenn ein Server stirbt, fallen typischerweise auch alle Services drauf aus. Ohne Reachability-Hint feuert dann jeder einzelne Check eine eigene Alarm-Mail — bei einem Host mit 12 Services kommen 12 Mails für genau ein Problem.
Der Reachability-Hint markiert einen Check pro Host als das „Ist der Host überhaupt online?"-Signal. Schlägt dieser Check fehl, werden Folge-Alerts der anderen Services dieses Hosts automatisch unterdrückt. Es kommt nur eine Mail: der Reachability-Check selbst.
Typischerweise ist das ein Ping-Check.
Verhältnis zu Dependencies & Inhibition¶
Dependencies & Inhibition modellieren manuelle Eltern-Kind-Beziehungen über Host-Grenzen hinweg („Switch sw-core → 50 dahinterliegende Server"). Der Reachability-Hint wirkt innerhalb eines einzelnen Hosts: er pausiert dessen eigene Service-Alerts wenn der Host unreachable ist.
Beides funktioniert parallel:
- Switch fällt aus → Inhibition unterdrückt Alerts der dahinterliegenden Server.
- Einzelner Server fällt aus → Reachability-Hint unterdrückt Alerts der Services AUF diesem Server.
Wo wird das eingestellt?¶
Auf Profile-Ebene (Default für alle Hosts mit dem Profile)¶
Profiles → Profil aufklappen → Check editieren (Pencil-Icon)
Im Check-Editor unten der Toggle „Als Reachability-Hint verwenden".
Beim Speichern erscheint — falls bereits Hosts mit diesem Profile existieren und für diesen Check einen Pro-Host-Override gesetzt haben — ein Dialog:
- Ja, auch Overrides zurücksetzen — der neue Profile-Default greift sofort überall, alle Pro-Host-Overrides werden gelöscht.
- Nur Default ändern, Overrides behalten — Hosts die schon eine individuelle Reachability-Hint-Wahl haben, bleiben davon unberührt.
In der Profile-Check-Liste erkennst du den als Reachability-Hint markierten Check am Radar-Badge neben dem Namen.
Pro Host (Override)¶
Host öffnen → „Host verwalten" → Tab „Reachability"
Drei Optionen:
| Option | Wirkung |
|---|---|
| Profile-Default verwenden | Übernimmt was im Profile steht (Standard, kein Override). |
| Deaktiviert | Kein Check dieses Hosts gilt als Reachability-Hint. Bei Host-Ausfall alarmieren alle Services einzeln. |
| Bestimmten Check als Hint setzen | Klappt eine Liste der aktiven Checks dieses Hosts auf. Wähle den gewünschten Check. |
Die aktuell aktive Wahl ist mit einem Radar-Icon und einem „aktuell aktiv"-Badge markiert.
Pro-Host-Override gewinnt gegen Profile-Default — du kannst also für einen einzelnen Host abweichen ohne andere Hosts mit gleichem Profile zu beeinflussen.
In der Service-Tabelle sichtbar¶
Auf der Host-Detail-Seite zeigt die Service-Tabelle ein kleines Radar-Icon hinter dem Check-Namen, der gerade der Reachability-Hint ist. Hover für den vollen Tooltip.
Wie funktioniert das technisch?¶
Hintergrund:
- Spalte
profile_checks.is_reachability_hint— Profile-Default. Wird beim Anlegen eines neuen Profile-Checks gesetzt; bei Ping-Checks automatisch auftrue. - Spalte
host_services.is_reachability_hint_override— Pro-Host-Override.NULL= inherit,true/false= override. - Effective-Wert:
COALESCE(host_services.is_reachability_hint_override, profile_checks.is_reachability_hint, false).
Ein Background-Watcher (reachability_hint_watcher, 30s-Cadenz) aggregiert pro Host alle Checks mit effective is_reachability_hint=true:
- Mindestens einer ist
alerting→hosts.reachability_state = 'alerting'. - Alle
ok→hosts.reachability_state = 'ok'.
Der Worker prüft beim Verarbeiten eines neuen Check-Ergebnisses ob hosts.reachability_state = 'alerting' ist. Falls ja, wird der Status-Übergang DEGRADED→ALERTING der Kind-Services nicht promoted (siehe Setting reachability_hint_suspend_children, Default true). Kein Alert, keine Mail.
Sobald der Hint-Check wieder ok ist, läuft die normale Promotion-Logik der Kind-Services weiter.
Mehrere Reachability-Hint-Checks pro Host¶
Das Datenmodell erlaubt mehrere Hint-Checks pro Host (z.B. Ping UND HTTP). Der Watcher aggregiert „alerting wins" — wenn einer alarmt, gilt der Host als unreachable.
Die UI führt aber bei Single-Auswahl: wenn du in der Host-verwalten-Sicht „Bestimmten Check als Hint setzen" wählst, werden alle anderen Hint-Overrides dieses Hosts auf false gesetzt. Wenn du das Profile-Default-Verhalten möchtest mit mehreren Hints, definiere mehrere Profile-Checks mit is_reachability_hint=true — das schlägt durch alle Hosts ohne Override durch.
Bei agent-managed Hosts¶
Zusätzlich zum Profile-Check-basierten Hint wertet der Watcher bei agent-managed Hosts den Agent-Heartbeat aus: wenn agent_tokens.last_seen_at älter als 3 Minuten ist, gilt der Host ebenfalls als alerting. Das funktioniert ohne dass du explizit einen Ping-Check definieren musst — der Agent selbst ist der Heartbeat.
Wenn beide Quellen Daten liefern (Profile-Hint UND Agent-Heartbeat), gilt „alerting wins".
Empfohlene Defaults¶
- Server mit Ping-Check: Ping als Reachability-Hint (Auto bei Profile-Anlage).
- Switches/Router/Firewalls mit SNMP: Ping als Reachability-Hint. SNMP-Checks alleine sind kein guter Hint — SNMPd kann hängen ohne dass das Gerät weg ist.
- Geräte ohne Ping (z.B. blockierter ICMP-Outbound): einen TCP-Port-Check oder einen leichten HTTP-Check als Hint setzen.
- Agent-managed Hosts: keine explizite Konfiguration nötig, Heartbeat reicht.
Wann deaktivieren?¶
In aller Regel willst du den Reachability-Hint angeschaltet lassen. Deaktiviere ihn höchstens für einzelne kritische Services bei denen du auch dann eine Mail willst wenn der Host komplett weg ist (z.B. SLA-relevante Services mit eigener Eskalation).