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 über das eigentliche 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 Zustand nicht, solange sich der Auslöser, von dem er abhängt, 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 ausgefallen“ und dem Auslöser „Router ausgefallen“ eingerichtet 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 (im obigen Beispiel der Router):

  • vom Zustand „PROBLEM“ in den Zustand „OK“ zurückkehrt;
  • 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 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:

  • 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 zuvor abhing. Dadurch ist es beispielsweise möglich, eine Vorlage zu haben, bei der einige Auslöser von den Router-(Host-)Auslösern 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 realen 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 erstellten Auslöser abhängen. Ein Host-Auslöser-Prototyp kann nicht von einem Auslöser aus einer Vorlage abhängen.

Konfiguration

So definieren Sie eine Abhängigkeit:

  1. Öffnen Sie die Registerkarte Dependencies im Konfigurationsformular des Auslösers.

  2. Klicken Sie im Abschnitt Dependencies auf Add und wählen Sie einen oder mehrere Auslöser aus, von denen der Auslöser abhängen soll.

  3. Klicken Sie auf Update.

Nun wird in der Liste beim Auslöser ein Hinweis auf seine Abhängigkeit 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.