Zależności wyzwalaczy

Zależności wyzwalaczy mogą być używane do unikania alertów, które nie są związane z główną przyczyną.

Zobacz wszystkie najlepsze praktyki.

Przegląd

Czasami dostępność jednego hosta zależy od innego. Serwer znajdujący się za routerem stanie się nieosiągalny, jeśli router przestanie działać. Jeśli dla obu skonfigurowano wyzwalacze, możesz otrzymać powiadomienia o niedostępności dwóch hostów — mimo że faktyczną przyczyną problemu był tylko router.

W takich przypadkach przydatne mogą być zależności między hostami. Po ustawieniu zależności powiadomienia dla elementów zależnych mogą zostać wstrzymane, a wysłane zostanie tylko powiadomienie o problemie głównym.

Chociaż Zabbix nie obsługuje bezpośrednio zależności między hostami, można je zdefiniować inną, bardziej elastyczną metodą — zależnościami wyzwalaczy. Wyzwalacz może zależeć od jednego lub wielu innych wyzwalaczy.

W naszym prostym przykładzie otwieramy formularz konfiguracji wyzwalacza serwera i ustawiamy, że zależy on od odpowiedniego wyzwalacza routera. Przy takiej zależności wyzwalacz serwera nie zmieni swojego stanu tak długo, jak długo wyzwalacz, od którego zależy, znajduje się w stanie „PROBLEM” — a zatem nie zostaną wykonane żadne zależne akcje i nie zostaną wysłane żadne powiadomienia.

Jeśli zarówno serwer, jak i router są niedostępne, a zależność między wyzwalaczem „server down” i wyzwalaczem „router down” jest ustawiona, Zabbix nie wykona akcji dla zależnego wyzwalacza.

Gdy nadrzędny wyzwalacz znajduje się w stanie PROBLEM, jego zależne wyzwalacze mogą zgłaszać wartości, którym nie można ufać. Dlatego zależne wyzwalacze nie będą ponownie oceniane, dopóki nadrzędny wyzwalacz (router w powyższym przykładzie):

  • nie wróci ze stanu „PROBLEM” do stanu „OK”;
  • nie zmieni stanu z „PROBLEM” na „UNKNOWN”;
  • nie zostanie zamknięty ręcznie, przez korelację lub przy użyciu funkcji date and time i/lub nodata();
  • nie zostanie rozwiązany przez wartość pozycji niewykorzystywanej w zależnym wyzwalaczu;
  • nie zostanie wyłączony, nie będzie miał wyłączonej pozycji lub hosta z wyłączoną pozycją

We wszystkich wyżej wymienionych przypadkach zależny wyzwalacz (serwer) zostanie ponownie oceniony dopiero po otrzymaniu dla niego nowej metryki. Oznacza to, że zależny wyzwalacz może nie zostać zaktualizowany natychmiast.

Ponadto:

  • Zależność wyzwalaczy może zostać dodana z dowolnego wyzwalacza hosta do dowolnego innego wyzwalacza hosta, o ile nie prowadzi to do cyklicznej zależności.
  • Zależność wyzwalaczy może zostać dodana z jednego szablonu do innego. Jeśli jakiś wyzwalacz z szablonu A zależy od jakiegoś wyzwalacza z szablonu B, szablon A może być podłączony do hosta (lub innego szablonu) tylko razem z szablonem B, natomiast szablon B może być podłączony do hosta (lub innego szablonu) samodzielnie.
  • Zależność wyzwalaczy może zostać dodana z wyzwalacza szablonu do wyzwalacza hosta. W takim przypadku podłączenie takiego szablonu do hosta spowoduje utworzenie wyzwalacza hosta, który będzie zależał od tego samego szablonu wyzwalacza, od którego zależał dany wyzwalacz. Pozwala to na przykład utworzyć szablon, w którym niektóre wyzwalacze zależą od wyzwalaczy routera (hosta). Wszystkie hosty podłączone do tego szablonu będą zależeć od tego konkretnego routera.
  • Zależność wyzwalaczy nie może zostać dodana z wyzwalacza hosta do wyzwalacza szablonu.
  • Zależność wyzwalaczy może zostać dodana z prototypu wyzwalacza do innego prototypu wyzwalacza (w ramach tej samej reguły wykrywania niskiego poziomu) lub rzeczywistego wyzwalacza. Prototyp wyzwalacza nie może zależeć od prototypu wyzwalacza z innej reguły LLD ani od wyzwalacza utworzonego z prototypu wyzwalacza. Prototyp wyzwalacza hosta nie może zależeć od wyzwalacza z szablonu.

Konfiguracja

Aby zdefiniować zależność:

  1. Otwórz kartę Dependencies w formularzu konfiguracji wyzwalacza.

  2. Kliknij Add w sekcji Dependencies i wybierz jeden lub więcej wyzwalaczy, od których dany wyzwalacz będzie zależny.

  3. Kliknij Update.

Teraz wyzwalacz ma oznaczenie swojej zależności na liście.

Przykład kilku zależności

Na przykład, host znajduje się za Router2, a Router2 znajduje się za Router1.

Zabbix - Router1 - Router2 - Host

Jeśli Router1 jest niedostępny, to oczywiście host i Router2 również są nieosiągalne, jednak otrzymywanie trzech powiadomień o tym, że host, Router1 i Router2 są niedostępne, jest nadmiarowe.

Dlatego w tym przypadku definiujemy dwie zależności:

wyzwalacz „Host is down” zależy od wyzwalacza „Router2 is down”
wyzwalacz „Router2 is down” zależy od wyzwalacza „Router1 is down”

Przed zmianą stanu wyzwalacza „Host is down” Zabbix sprawdzi odpowiadające zależności wyzwalacza. Jeśli takie zostaną znalezione i jeden z tych wyzwalaczy jest w stanie Problem, stan wyzwalacza nie zostanie zmieniony, akcje nie zostaną wykonane i żadne powiadomienia nie zostaną wysłane.

Zabbix wykonuje to sprawdzenie rekurencyjnie. Jeśli Router1 lub Router2 jest nieosiągalny, wyzwalacz hosta nie zostanie zaktualizowany.