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, który znajduje 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, podczas gdy w rzeczywistości winowajcą 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, mogą one zostać zdefiniowane inną, bardziej elastyczną metodą — zależnościami wyzwalaczy. Wyzwalacz może zależeć od jednego lub większej liczby 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 wyzwalacz, od którego zależy, znajduje się w stanie „PROBLEM” — a więc 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 i zależność 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ą oceniane ponownie, 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ść pozycja, która nie jest używana w zależnym wyzwalaczu;
- nie zostanie wyłączony, nie będzie miał wyłączonej pozycja lub wyłączonego hosta pozycji
We wszystkich wymienionych powyżej przypadkach zależny wyzwalacz (serwer) zostanie oceniony ponownie dopiero po otrzymaniu dla niego nowej metryki. Oznacza to, że zależny wyzwalacz może nie zostać zaktualizowany natychmiast.
Ponadto:
- Zależność wyzwalacza można dodać z dowolnego wyzwalacza hosta do dowolnego innego wyzwalacza hosta, o ile nie prowadzi to do zależności cyklicznej.
- Zależność wyzwalacza można dodać z jednego szablonu do drugiego. 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ść wyzwalacza można dodać z wyzwalacza szablonu do wyzwalacza hosta. W takim przypadku podłączenie takiego szablonu do hosta utworzy wyzwalacz 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żne od tego konkretnego routera.
- Zależności wyzwalacza nie można dodać z wyzwalacza hosta do wyzwalacza szablonu.
- Zależność wyzwalacza można dodać 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ść, otwórz kartę Zależności w formularzu konfiguracji wyzwalacza. Kliknij Dodaj w bloku „Zależności” i wybierz jeden lub więcej wyzwalaczy, od których dany wyzwalacz będzie zależny.

Kliknij Aktualizuj. 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.