3 Auslöser-Abhängigkeiten

Übersicht

Manchmal hängt die Verfügbarkeit eines Hosts von einem anderen ab. Ein Server hinter einem Router 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 hilfreich sein. Wenn eine Abhängigkeit festgelegt ist, können Benachrichtigungen für abhängige Hosts zurückgehalten werden und nur eine Benachrichtigung über das grundlegende Problem gesendet werden.

Zabbix unterstützt zwar keine direkten Abhängigkeiten zwischen Hosts, diese können jedoch mit einer anderen, flexibleren Methode definiert werden: Auslöserabhängigkeiten. Ein Auslöser kann von einem oder mehreren anderen Auslösern abhängen.

In unserem einfachen Beispiel öffnen wir daher das Konfigurationsformular des Auslösers für den Server und legen fest, dass er vom entsprechenden Auslöser des Routers abhängt. Bei einer solchen Abhängigkeit ändert der Auslöser des Servers seinen Status nicht, solange der Auslöser, von dem er abhängt, den Status „PROBLEM“ hat. 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“ festgelegt ist, führt Zabbix keine Aktionen für den abhängigen Auslöser aus.

Solange der übergeordnete Auslöser den Status PROBLEM hat, melden seine abhängigen Auslöser möglicherweise Werte, 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“ wieder in den Status „OK“ wechselt;
  • seinen Status von „PROBLEM“ in „UNKNOWN“ ändert;
  • manuell, durch Korrelation oder mithilfe der Funktionen date and time und/oder nodata() geschlossen wird;
  • durch den Wert eines Datenpunkts aufgelöst wird, der nicht am abhängigen Auslöser beteiligt ist;
  • deaktiviert wird, einen deaktivierten Datenpunkt hat oder ein Host mit einem deaktivierten Datenpunkt ist.

In allen oben genannten Fällen wird der abhängige Auslöser (Server) erst dann erneut ausgewertet, wenn eine neue Metrik für ihn empfangen wird. Das bedeutet, dass der abhängige Auslöser möglicherweise nicht sofort aktualisiert wird.

Außerdem gilt:

  • Eine Auslöserabhängigkeit kann von einem Auslöser eines beliebigen Hosts zu jedem anderen Auslöser eines Hosts hinzugefügt werden, solange dadurch keine zirkuläre Abhängigkeit entsteht.
  • Eine Auslöserabhängigkeit kann von einer Vorlage zu einer anderen Vorlage 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. Vorlage B kann jedoch allein mit einem Host (oder einer anderen Vorlage) verknüpft werden.
  • Eine Auslöserabhängigkeit kann von einem Vorlagenauslöser zu einem Host-Auslöser hinzugefügt werden. In diesem Fall wird durch die Verknüpfung einer solchen Vorlage mit einem Host ein Host-Auslöser erstellt, der vom selben Auslöser der Vorlage abhängt, von dem der ursprüngliche Auslöser abhängig war. So können Sie beispielsweise eine Vorlage erstellen, in der einige Auslöser von den Auslösern des Routers (Host) abhängen. Alle mit dieser Vorlage verknüpften Hosts hängen von diesem bestimmten Router ab.
  • Eine Auslöserabhängigkeit kann nicht von einem Host-Auslöser zu einem Vorlagenauslöser hinzugefügt werden.
  • Eine Auslöserabhängigkeit kann von einem Auslöserprototyp zu einem anderen Auslöserprototyp (innerhalb derselben Regel für die Low-Level-Erkennung) oder zu einem tatsächlichen 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

So definieren Sie eine Abhängigkeit:

  1. Öffnen Sie die Registerkarte Abhängigkeiten im Konfigurationsformular für Auslöser.

  2. Klicken Sie im Abschnitt Abhängigkeiten auf Hinzufügen und wählen Sie einen oder mehrere Auslöser aus, von denen der Auslöser abhängig sein soll.

  3. Klicken Sie auf Aktualisieren.

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.