Auslöser-Abhängigkeiten
Auslöser-Abhängigkeiten können verwendet werden, um Warnmeldungen zu vermeiden, die nicht mit der Grundursache zusammenhängen.
Siehe alle Best Practices.
Übersicht
Manchmal hängt die Verfügbarkeit eines Hosts von einem anderen ab. Ein Server, der sich hinter einem Router befindet, wird unerreichbar, wenn der Router ausfällt. Wenn für beide Auslöser konfiguriert sind, erhalten Sie möglicherweise Benachrichtigungen über zwei ausgefallene Hosts – obwohl tatsächlich nur der Router die Ursache war.
Hier kann eine Abhängigkeit zwischen Hosts nützlich sein. Wenn eine Abhängigkeit eingerichtet ist, können Benachrichtigungen für abhängige Hosts zurückgehalten und nur die Benachrichtigung zum eigentlichen Grundproblem gesendet werden.
Obwohl Zabbix Abhängigkeiten zwischen Hosts nicht direkt unterstützt, können sie mit einer anderen, flexibleren Methode definiert werden – Auslöser- Abhä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 sich der Auslöser, von dem er abhängt, im Status „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 besteht, führt Zabbix keine Aktionen für den abhängigen Auslöser aus.
Während sich der übergeordnete Auslöser im Status 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 (im obigen Beispiel der Router):
- vom Status „PROBLEM“ in den Status „OK“ zurückkehrt;
- seinen Status von „PROBLEM“ auf „UNKNOWN“ ändert;
- manuell, durch Korrelation oder mithilfe der Funktionen date and time und/oder nodata() geschlossen wird;
- durch einen Wert eines Datenpunkts aufgelöst wird, der nicht am abhängigen Auslöser beteiligt ist;
- deaktiviert wird, einen deaktivierten Datenpunkt oder einen Host mit deaktiviertem Datenpunkt hat
In allen oben genannten Fällen wird der abhängige Auslöser (Server) erst dann erneut ausgewertet, wenn ein neuer Messwert dafür empfangen wird. Das bedeutet, dass der abhängige Auslöser möglicherweise nicht sofort aktualisiert wird.
Außerdem gilt:
- Eine Auslöser-Abhä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öser-Abhä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, kann Vorlage A nur zusammen mit Vorlage B mit einem Host (oder einer anderen Vorlage) verknüpft werden, Vorlage B kann jedoch auch allein mit einem Host (oder einer anderen Vorlage) verknüpft werden.
- Eine Auslöser-Abhängigkeit kann von einem Vorlagen-Auslöser zu einem Host- Auslöser hinzugefügt werden. In diesem Fall erzeugt das Verknüpfen einer solchen Vorlage mit einem Host einen Host-Auslöser, der von derselben Auslöser-Vorlage abhängt, von der der Auslöser abhängig war. Dies ermöglicht es beispielsweise, eine Vorlage zu haben, bei der einige Auslöser von den Router-Auslösern (Host) abhängen. Alle Hosts, die mit dieser Vorlage verknüpft sind, hängen von diesem bestimmten Router ab.
- Eine Auslöser-Abhängigkeit kann nicht von einem Host-Auslöser zu einem Vorlagen-Auslöser hinzugefügt werden.
- Eine Auslöser-Abhängigkeit kann von einem Auslöser-Prototyp zu einem anderen Auslöser-Prototyp (innerhalb derselben Low-Level-Discovery-Regel) oder zu einem echten Auslöser hinzugefügt werden. Ein Auslöser-Prototyp darf nicht von einem Auslöser- Prototyp aus einer anderen LLD-Regel oder von einem aus einem Auslöser-Prototyp erzeugten Auslöser abhängen. Ein Host-Auslöser-Prototyp kann nicht von einem Auslöser aus einer Vorlage abhängen.
Konfiguration
Um eine Abhängigkeit zu definieren, öffnen Sie die Registerkarte „Abhängigkeiten“ im Konfigurationsformular des Auslösers. Klicken Sie im Block „Abhängigkeiten“ auf Hinzufügen und wählen Sie einen oder mehrere Auslöser aus, von denen der Auslöser abhängen soll.

Klicken Sie auf Aktualisieren. Nun wird der Auslöser mit dem Hinweis auf seine Abhängigkeit in der Liste angezeigt.

Beispiel für mehrere Abhängigkeiten
Zum Beispiel befindet sich der Host hinter Router2, und Router2 befindet sich hinter Router1.
Zabbix - Router1 - Router2 - Host
Wenn Router1 ausfällt, sind natürlich auch der Host und Router2 nicht erreichbar, doch drei Benachrichtigungen darüber zu erhalten, dass der Host, Router1 und Router2 alle ausgefallen sind, ist übermäßig.
Daher definieren wir in diesem Fall 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 Zabbix den Status des Auslösers „Host ist ausgefallen“ ändert, prüft es
die entsprechenden Auslöser-Abhä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 Router1 oder Router2 nicht erreichbar ist, wird der Host-Auslöser nicht aktualisiert.