Skip to content

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 auf true.
  • 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 alertinghosts.reachability_state = 'alerting'.
  • Alle okhosts.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).