3 Zależności wyzwalaczy

Omówienie

Czasami dostępność jednego hosta zależy od innego. Serwer znajdujący się za routerem stanie się niedostępny, jeśli router przestanie działać. Przy wyzwalaczach skonfigurowanych dla obu z nich możesz otrzymać powiadomienia o niedostępności dwóch hostów - podczas gdy winny był tylko router.

W takiej sytuacji przydatna może być pewna zależność między hostami. Po ustawieniu zależności można wstrzymać powiadomienia dotyczące zależnych hostów i wysłać tylko powiadomienie o problemie źródłowym.

Chociaż Zabbix nie obsługuje bezpośrednio zależności między hostami, można je zdefiniować za pomocą innej, bardziej elastycznej metody - zależności wyzwalaczy. Wyzwalacz może mieć jeden lub więcej wyzwalaczy, od których zależy.

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ą podjęte żadne działania zależne 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 działań dla wyzwalacza zależnego.

Gdy wyzwalacz nadrzędny znajduje się w stanie PROBLEM, jego elementy zależne mogą zwracać wartości, którym nie można ufać. Dlatego wyzwalacze zależne nie będą ponownie oceniane, dopóki wyzwalacz nadrzędny (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 z pomocą funkcji date and time i/lub nodata();
  • nie zostanie rozwiązany przez wartość pozycja, która nie bierze udziału w wyzwalaczu zależnym;
  • nie zostanie wyłączony, nie będzie miał wyłączonej pozycji lub wyłączonego hosta pozycji

We wszystkich przypadkach wymienionych powyżej wyzwalacz zależny (serwer) zostanie ponownie oceniony dopiero po otrzymaniu nowej metryki. Oznacza to, że wyzwalacz zależny 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 spowoduje to zależności cyklicznej.
  • Zależność wyzwalacza można dodać 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ć połączony z hostem (lub innym szablonem) tylko razem z szablonem B, natomiast szablon B może być połączony z hostem (lub innym szablonem) samodzielnie.
  • Zależność wyzwalacza można dodać z wyzwalacza szablonu do wyzwalacza hosta. W takim przypadku połączenie takiego szablonu z hostem utworzy wyzwalacz hosta, który będzie zależał od tego samego wyzwalacza szablonu, od którego zależał wyzwalacz. Pozwala to na przykład mieć szablon, w którym niektóre wyzwalacze zależą od wyzwalaczy routera (hosta). Wszystkie hosty połączone z tym szablonem będą zależeć 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 niskopoziomowego wykrywania) lub do 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 będzie zależeć ten wyzwalacz.

  3. Kliknij Update.

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

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 nie działa, to oczywiście host i Router2 są również niedostępne, jednak otrzymywanie trzech powiadomień o tym, że host, Router1 i Router2 nie działają, jest przesadą.

W takim 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 odpowiednie zależności wyzwalaczy. Jeśli takie zależności zostaną znalezione i jeden z tych wyzwalaczy znajduje się w stanie 'Problem', stan wyzwalacza nie zostanie zmieniony, akcje nie zostaną wykonane i nie zostaną wysłane żadne powiadomienia.

Zabbix wykonuje to sprawdzenie rekurencyjnie. Jeśli Router1 lub Router2 są niedostępne, wyzwalacz hosta nie zostanie zaktualizowany.