3 Auslöser-Abhängigkeiten
Übersicht
Manchmal hängt die Verfügbarkeit eines Hosts von einem anderen ab. Ein Server, der sich hinter einem Router befindet, wird nicht mehr erreichbar sein, wenn der Router ausfällt. Wenn für beide Auslöser konfiguriert sind, erhalten Sie möglicherweise Benachrichtigungen über zwei ausgefallene Hosts - obwohl nur der Router die Ursache war.
Hier kann eine Abhängigkeit zwischen Hosts nützlich sein. Wenn eine Abhängigkeit gesetzt ist, können Benachrichtigungen für die abhängigen Hosts zurückgehalten werden, und es wird nur die Benachrichtigung zum eigentlichen Problem gesendet.
Zabbix unterstützt Abhängigkeiten zwischen Hosts zwar nicht direkt, sie können jedoch mit einer anderen, flexibleren Methode definiert werden - über Auslöserabhängigkeiten. Ein Auslöser kann von einem oder mehreren anderen Auslösern abhängen.
In unserem einfachen Beispiel öffnen wir also das Konfigurationsformular des Server-Auslösers und legen fest, dass er vom entsprechenden Auslöser des Routers abhängt. Mit einer solchen Abhängigkeit ändert der Server-Auslöser seinen Status nicht, solange der Auslöser, von dem er abhängt, sich im Zustand 'PROBLEM' befindet - und daher werden keine abhängigen Aktionen ausgeführt und keine Benachrichtigungen gesendet.
Wenn sowohl der Server als auch der Router ausgefallen sind und eine Abhängigkeit zwischen dem Auslöser "server down" und dem Auslöser "router down" gesetzt ist, führt Zabbix keine Aktionen für den abhängigen Auslöser aus.
Solange sich der übergeordnete Auslöser im Zustand PROBLEM befindet, können seine abhängigen Auslöser Werte melden, denen nicht vertraut werden kann. Daher werden abhängige Auslöser erst dann erneut ausgewertet, wenn der übergeordnete Auslöser (der Router im obigen Beispiel):
- von 'PROBLEM' zurück in den Zustand 'OK' wechselt;
- seinen Zustand von 'PROBLEM' in 'UNKNOWN' ändert;
- manuell, durch Korrelation oder mithilfe der Funktionen date and time und/oder nodata() geschlossen wird;
- durch einen Wert eines Datenpunkts behoben wird, der nicht am abhängigen Auslöser beteiligt ist;
- deaktiviert ist, einen deaktivierten Datenpunkt oder einen deaktivierten Datenpunkt-Host hat
In allen oben genannten Fällen wird der abhängige Auslöser (Server) erst dann erneut ausgewertet, wenn für ihn ein neuer Messwert empfangen wird. Das bedeutet, dass der abhängige Auslöser möglicherweise nicht sofort aktualisiert wird.
Außerdem:
- Eine Auslöserabhängigkeit kann von jedem Host-Auslöser zu jedem anderen Host-Auslöser hinzugefügt werden, solange dadurch keine zirkuläre Abhängigkeit entsteht.
- Eine Auslöserabhängigkeit kann von einer Vorlage zu einer anderen hinzugefügt werden. Wenn ein Auslöser aus Vorlage A von einem Auslöser aus Vorlage B abhängt, darf Vorlage A nur zusammen mit Vorlage B mit einem Host (oder einer anderen Vorlage) verknüpft werden, während Vorlage B auch allein mit einem Host (oder einer anderen Vorlage) verknüpft werden darf.
- Eine Auslöserabhängigkeit kann von einem Vorlagen-Auslöser zu einem Host-Auslöser hinzugefügt werden. In diesem Fall wird beim Verknüpfen einer solchen Vorlage mit einem Host ein Host-Auslöser erstellt, der von demselben Vorlagen-Auslöser abhängt, von dem der Auslöser abhängig war. Dies ermöglicht es beispielsweise, eine Vorlage zu haben, in der einige Auslöser von den Router-Host-Auslösern abhängen. Alle Hosts, die mit dieser Vorlage verknüpft sind, hängen dann von diesem bestimmten Router ab.
- Eine Auslöserabhängigkeit kann nicht von einem Host-Auslöser zu einem Vorlagen-Auslöser hinzugefügt werden.
- Eine Auslöserabhängigkeit kann von einem Auslöserprototyp zu einem anderen Auslöserprototyp (innerhalb derselben Low-Level-Discovery-Regel) oder zu einem realen Auslöser hinzugefügt werden. Ein Auslöserprototyp darf nicht von einem Auslöserprototyp aus einer anderen LLD-Regel oder von einem aus einem Auslöserprototyp erstellten Auslöser abhängen. Ein Host-Auslöserprototyp kann nicht von einem Auslöser aus einer Vorlage abhängen.
Konfiguration
Um eine Abhängigkeit zu definieren:
-
Öffnen Sie die Registerkarte Dependencies im Konfigurationsformular des Auslösers.
-
Klicken Sie im Abschnitt Dependencies auf Add und wählen Sie einen oder mehrere Auslöser aus, von denen der Auslöser abhängig sein soll.

-
Klicken Sie auf Update.
Nun wird die Abhängigkeit des Auslösers in der Liste angezeigt.

Beispiel für mehrere Abhängigkeiten
Zum Beispiel befindet sich der Host hinter dem Router2 und der Router2 hinter dem Router1.
Zabbix - Router1 - Router2 - Host
Wenn der Router1 ausgefallen ist, dann sind natürlich auch der Host und der Router2 nicht erreichbar, doch drei Benachrichtigungen darüber zu erhalten, dass der Host, der Router1 und der Router2 ausgefallen sind, ist übertrieben.
In diesem Fall definieren wir also zwei Abhängigkeiten:
der Auslöser 'Host ist ausgefallen' hängt vom Auslöser 'Router2 ist ausgefallen' ab
der Auslöser 'Router2 ist ausgefallen' hängt vom Auslöser 'Router1 ist ausgefallen' ab
Bevor der Status des Auslösers 'Host ist ausgefallen' geändert wird, prüft Zabbix die entsprechenden Auslöserabhängigkeiten. Wenn solche gefunden werden und einer dieser Auslöser sich im Zustand 'Problem' befindet, wird der Auslöserstatus nicht geändert, die Aktionen werden nicht ausgeführt und es werden keine Benachrichtigungen gesendet.
Zabbix führt diese Prüfung rekursiv durch. Wenn der Router1 oder der Router2 nicht erreichbar ist, wird der Host-Auslöser nicht aktualisiert.