3 Wyzwalacze
Przegląd
Wyzwalacze to wyrażenia logiczne, które „oceniają” dane zebrane przez pozycje i przedstawiają bieżący stan systemu.
Pozycje służą do zbierania danych systemowych, jednak ciągłe śledzenie tych danych w oczekiwaniu na warunek, który sygnalizuje problem lub wymaga uwagi, jest wysoce niepraktyczne. Zadanie „oceniania” danych można powierzyć wyrażeniom wyzwalaczy.
Wyrażenia wyzwalaczy umożliwiają zdefiniowanie progu określającego, jaki stan danych jest „akceptowalny”. Jeśli więc przychodzące dane przekroczą akceptowalny stan, wyzwalacz zostanie „uruchomiony” lub zmieni swój status na PROBLEM.
Wyzwalacz może mieć następujący status:
| Status | Opis |
|---|---|
| OK | Jest to 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 Status Unknown. |
W przypadku prostego wyzwalacza możemy chcieć ustawić próg dla pięciominutowej średniej pewnych danych, na przykład obciążenia procesora. Osiąga się to przez zdefiniowanie wyrażenia wyzwalacza, w którym:
- funkcja „avg” jest stosowana 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” (uzyska status PROBLEM), jeśli średnia z pięciu minut będzie większa niż 2.
W bardziej złożonym wyzwalaczu wyrażenie może zawierać połączenie wielu funkcji i wielu progów. Zobacz także: Wyrażenie wyzwalacza.
Nie można tworzyć wyzwalaczy dla pozycji zwracających wartości z binarnym typem danych.
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 oceny
Okres oceny jest używany w funkcjach odwołujących się do historii pozycji. Umożliwia określenie interesującego nas przedziału. Można go określić jako okres (30s, 10m, 1h) lub zakres wartości (#5 - pięć ostatnich wartości).
Okres oceny jest mierzony do chwili „teraz” - gdzie „teraz” oznacza czas ostatniego przeliczenia wyzwalacza (zobacz sekcję Czas obliczenia powyżej); „teraz” nie oznacza czasu „teraz” serwera.
Okres oceny określa:
- Wszystkie wartości między „teraz - okres” a „teraz” (lub, po zastosowaniu przesunięcia czasowego, między „teraz - przesunięcie czasowe - okres” a „teraz - przesunięcie czasowe”).
- Określoną liczbę wartości z przeszłości, aż do chwili „teraz”.
Jeśli dla określonego okresu oceny nie istnieją żadne dane, wyzwalacz lub pozycja obliczana używająca tej funkcji stanie 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” zawsze oznacza czas otrzymania najnowszej wartości. Na przykład jeśli ostatnia wartość została otrzymana godzinę temu, okres oceny będzie liczony do najnowszej wartości sprzed godziny.
- Nowy wyzwalacz jest obliczany natychmiast po otrzymaniu pierwszej wartości (funkcje historii); w przypadku funkcji daty i czasu oraz nodata() zostanie obliczony w ciągu 30 sekund. Oznacza to, że wyzwalacz zostanie obliczony, nawet jeśli od jego utworzenia nie upłynął jeszcze określony okres oceny (na przykład jedna godzina). Wyzwalacz zostanie również obliczony po otrzymaniu pierwszej wartości, nawet jeśli zakres oceny został ustawiony na przykład na dziesięć ostatnich 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.