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ę niedostępny, jeśli router przestanie działać. Przy wyzwalaczach skonfigurowanych dla obu hostów możesz otrzymać powiadomienia o awarii dwóch hostów, podczas gdy winowajcą był tylko router.

W takiej sytuacji przydatna może być zależność między hostami. Po skonfigurowaniu zależności powiadomienia dotyczące elementów zależnych mogą zostać wstrzymane i wysłane może zostać tylko powiadomienie o problemie głównym.

Chociaż Zabbix nie obsługuje bezpośrednio zależności między hostami, można je definiować za pomocą innej, bardziej elastycznej metody - zależności 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 jego zależność od odpowiedniego wyzwalacza routera. Przy takiej zależności wyzwalacz serwera nie zmieni swojego stanu, dopóki wyzwalacz, od którego zależy, będzie w stanie „PROBLEM” - w związku z tym nie zostaną wykonane żadne akcje zależne ani wysłane żadne powiadomienia.

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

Gdy wyzwalacz nadrzędny jest w stanie PROBLEM, jego elementy zależne mogą zgłaszać 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 powróci ze stanu „PROBLEM” do stanu „OK”;
  • nie zmieni stanu z „PROBLEM” na „UNKNOWN”;
  • nie zostanie zamknięty ręcznie, przez korelację lub za pomocą funkcji date and time i/lub nodata();
  • nie zostanie rozwiązany przez wartość pozycji, która nie jest używana w wyzwalaczu zależnym;
  • nie zostanie wyłączony, nie będzie miał wyłączonej pozycji ani hosta wyłączonej pozycji

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

Ponadto:

  • Zależność wyzwalacza można dodać od wyzwalacza dowolnego hosta do dowolnego innego wyzwalacza hosta, o ile nie spowoduje to powstania zależności cyklicznej.
  • Zależność wyzwalacza można dodać z jednego szablonu do innego. Jeśli wyzwalacz z szablonu A zależy od wyzwalacza z szablonu B, szablon A można połączyć z hostem (lub innym szablonem) tylko razem z szablonem B, natomiast szablon B można połączyć z hostem (lub innym szablonem) samodzielnie.
  • Zależność wyzwalacza można dodać od wyzwalacza szablonu do wyzwalacza hosta. W takim przypadku połączenie takiego szablonu z hostem utworzy wyzwalacz hosta zależny od tego samego wyzwalacza szablonu, od którego zależał wyzwalacz. Umożliwia to na przykład utworzenie szablonu, w którym niektóre wyzwalacze zależą od wyzwalaczy routera (hosta). Wszystkie hosty połączone z tym szablonem będą zależeć od konkretnego routera.
  • Nie można dodać zależności wyzwalacza od wyzwalacza hosta do wyzwalacza szablonu.
  • Zależność wyzwalacza można dodać od prototypu wyzwalacza do innego prototypu wyzwalacza (w ramach tej samej reguły wykrywania niskopoziomowego) lub do rzeczywistego wyzwalacza. Prototyp wyzwalacza nie może zależeć od prototypu wyzwalacza z innej reguły LLD ani od wyzwalacza utworzonego na podstawie prototypu wyzwalacza. Prototyp wyzwalacza hosta nie może zależeć od wyzwalacza z szablonu.

Konfiguracja

Aby zdefiniować zależność:

  1. Otwórz kartę Zależności w formularzu konfiguracji wyzwalacza.

  2. Kliknij Dodaj w sekcji Zależności i wybierz co najmniej jeden wyzwalacz, od którego będzie zależeć dany wyzwalacz.

  3. Kliknij Aktualizuj.

Teraz na liście wyzwalacz będzie oznaczony jako zależny.

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 zostaną znalezione, a 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.