3 Wyzwalacze
Przegląd
Wyzwalacze są logicznymi wyrażeniami, które "oceniają" dane zbierane przez pozycje i reprezentują bieżący stan systemu.
Chociaż pozycje służą do zbierania danych systemowych, śledzenie tych danych przez cały czas w oczekiwaniu na warunek, który jest alarmujący lub wymaga uwagi, jest bardzo niepraktyczne. Zadanie "oceny" 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" - albo 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ęciominutowej średniej pewnych 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ęciominutowa ś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: Wyrażenie wyzwalacza.
Nie można tworzyć wyzwalaczy dla pozycji zwracających wartości binarne data type.
Po włączeniu wyzwalacza (zmianie jego statusu konfiguracji z Disabled na Enabled) wyrażenie wyzwalacza jest oceniane natychmiast po otrzymaniu wartości przez pozycję w nim zawartą lub gdy nadejdzie czas obsługi funkcji date and time i/lub nodata().
Większość funkcji wyzwalacza jest oceniana na podstawie danych wartości pozycji history, podczas gdy niektóre funkcje wyzwalacza do długoterminowej analityki, np. trendavg(), trendcount(), itp., używają 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 uwzględniona 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 data i czas i/lub nodata().
Funkcje data i czas 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że być określony jako okres czasu (30s, 10m, 1h) lub jako zakres wartości (#5 - dla pięciu najnowszych wartości).
Okres ewaluacji jest liczony do "teraz" - gdzie "teraz" to najnowszy czas ponownego obliczenia wyzwalacza (zobacz Czas obliczeń powyżej); "teraz" nie oznacza czasu "teraz" na serwerze.
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 korzystająca z 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 obejmujący najnowszą wartość 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 momentu 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.