3 Wyzwalacze
Przegląd
Wyzwalacze są logicznymi wyrażeniami, które "oceniają" dane zebrane przez pozycje i reprezentują bieżący stan systemu.
Podczas gdy pozycje służą do zbierania danych systemowych, śledzenie tych danych przez cały czas w oczekiwaniu na warunek alarmowy lub wymagający uwagi jest bardzo niepraktyczne. Zadanie "oceniania" danych można pozostawić wyrażeniom wyzwalaczy.
Wyrażenia wyzwalaczy pozwalają zdefiniować próg określający, jaki stan danych jest "akceptowalny". Dlatego jeśli napływające dane przekroczą akceptowalny stan, wyzwalacz zostaje "uruchomiony" - lub zmienia swój status na PROBLEM.
Wyzwalacz może mieć następujący status:
| Status | Opis |
|---|---|
| OK | To jest normalny status wyzwalacza. |
| Problem | Coś się wydarzyło. Na przykład obciążenie procesora jest zbyt wysokie. |
| Unknown | Nie można obliczyć wartości wyzwalacza. Zobacz Unknown status. |
W prostym wyzwalaczu możemy chcieć ustawić próg dla pięciominutniej średniej jakichś danych, na przykład obciążenia CPU. Osiąga się to przez zdefiniowanie wyrażenia wyzwalacza, w którym:
- funkcja 'avg' jest zastosowana do wartości otrzymanej w kluczu pozycji
- używany jest pięciominutowy okres oceny
- ustawiony jest próg '2'
avg(/host/key,5m)>2
Ten wyzwalacz zostanie "uruchomiony" (stanie się PROBLEM), jeśli pięciominutnia średnia będzie większa niż 2.
W bardziej złożonym wyzwalaczu wyrażenie może zawierać kombinację wielu funkcji i wielu progów. Zobacz także: Trigger expression.
Nie można tworzyć wyzwalaczy dla pozycji zwracających wartości binarnego typu danych.
Po włączeniu wyzwalacza (zmianie jego statusu konfiguracji z Disabled na Enabled) wyrażenie wyzwalacza jest oceniane natychmiast po tym, jak pozycja w nim otrzyma wartość, lub gdy nadejdzie czas obsługi funkcji date and time i/lub nodata().
Większość funkcji wyzwalaczy jest oceniana na podstawie danych wartości pozycji history, podczas gdy niektóre funkcje wyzwalaczy do długoterminowej analityki, np. trendavg(), trendcount(), itp., korzystają z danych trendów.
Czas obliczeń
Wyzwalacz jest przeliczany za każdym razem, gdy serwer Zabbix otrzyma nową wartość, która jest częścią wyrażenia. Gdy zostanie odebrana nowa wartość, każda funkcja zawarta w wyrażeniu jest przeliczana (nie tylko ta, która otrzymała nową wartość).
Dodatkowo wyzwalacz jest przeliczany za każdym razem, gdy zostanie odebrana nowa wartość, oraz co 30 sekund, jeśli w wyrażeniu są używane funkcje date and time i/lub nodata().
Funkcje date and time i/lub nodata() są przeliczane co 30 sekund przez proces synchronizacji historii Zabbix.
Wyzwalacze, które odwołują się wyłącznie do funkcji trendów, są oceniane raz na najmniejszy okres czasu w wyrażeniu. Zobacz także funkcje trendów.
Okres ewaluacji
Okres ewaluacji jest używany w funkcjach odwołujących się do historii pozycja. Pozwala określić interesujący nas przedział czasu. Można go określić jako okres czasu (30s, 10m, 1h) albo jako zakres wartości (#5 - dla pięciu najnowszych wartości).
Okres ewaluacji jest liczony do "teraz" - gdzie "teraz" oznacza najpóźniejszy czas ponownego obliczenia wyzwalacza (zobacz Czas obliczeń powyżej); "teraz" nie oznacza czasu "teraz" serwera.
Okres ewaluacji określa:
- Wszystkie wartości między "teraz - okres czasu" a "teraz" (lub, po zastosowaniu przesunięcia czasu, między "teraz - przesunięcie czasu - okres czasu" a "teraz - przesunięcie czasu").
- Określoną liczbę wartości z przeszłości, do "teraz".
Jeśli dla określonego okresu ewaluacji nie istnieją żadne dane, wyzwalacz lub obliczana pozycja używająca tej funkcji staje się nieobsługiwana.
Należy pamiętać, że:
- Jeśli w wyzwalaczu używana jest tylko jedna funkcja (odwołująca się do historii danych), "teraz" jest zawsze najnowszą otrzymaną wartością. Na przykład, jeśli ostatnia wartość została odebrana godzinę temu, okres ewaluacji będzie traktowany jako sięgający do najnowszej wartości sprzed godziny.
- Nowy wyzwalacz jest obliczany natychmiast po otrzymaniu pierwszej wartości (funkcje historii); zostanie obliczony w ciągu 30 sekund dla funkcji date and time oraz nodata(). W związku z tym wyzwalacz zostanie obliczony nawet wtedy, gdy ustawiony okres ewaluacji (na przykład jedna godzina) jeszcze nie upłynął od utworzenia wyzwalacza. Wyzwalacz zostanie również obliczony po otrzymaniu pierwszej wartości, nawet jeśli zakres ewaluacji został ustawiony na przykład na dziesięć najnowszych wartości.
Nieznany status
Możliwe jest, że w wyrażeniu wyzwalacza pojawi się nieznany operand, jeśli:
- użyto nieobsługiwanej pozycji
- ocena funkcji dla obsługiwanej pozycji zakończy się błędem
W takim przypadku wyzwalacz zazwyczaj przyjmuje wartość "unknown" (choć istnieją pewne wyjątki). Więcej informacji można znaleźć w sekcji Wyrażenia z nieznanymi operandami.
Możliwe jest otrzymywanie powiadomień o nieznanych wyzwalaczach.