Wszystkie funkcje wymienione tutaj są obsługiwane w:
Kilka ogólnych uwag na temat parametrów funkcji:
<
>
/host/key
oraz (sec|#num)<:time shift>
nigdy nie powinny być umieszczane w cudzysłowiu/host/key
to wspólny obowiązkowy pierwszy parametr dla funkcji, odnoszących się do historii pozycji hosta(sec|#num)<:time shift>
to wspólny drugi parametr dla funkcji, odnoszących się do historii pozycji hosta, gdzie:
FUNKCJA | ||
---|---|---|
Opis | Specyficzne dla funkcji parametry | Komentarze |
change (/host/key) | ||
Różnica między poprzednią a ostatnią wartością. | Obsługiwane typy wartości: float, int, str, text, log Dla ciągów znaków zwraca: 0 - wartości są równe 1 - wartości różnią się Przykład: => change(/host/key)>10 Różnica zostanie obliczona tak, jak widać na tych przykładowych wartościach ('poprzednia' i 'ostatnia' wartość = różnica): '1' i '5' = +4 '3' i '1' = -2 '0' i '-2.5' = -2.5 Zobacz również: abs do porównań |
|
changecount (/host/key,(sec|#num)<:time shift>,<mode>) | ||
Liczba zmian między sąsiednimi wartościami w określonym okresie ewaluacji. | Zobacz wspólne parametry. mode (opcjonalny; musi być w podwójnym cudzysłowiu) Obsługiwane tryby :all - zlicz wszystkie zmiany (domyślnie) dec - zlicz spadki inc - zlicz wzrosty |
Obsługiwane typy wartości: float, int, str, text, log Dla typów wartości inne niż numeryczne, parametr mode jest ignorowany. Przykłady: => changecount(/host/key, 1w) → liczba zmian wartości w ciągu ostatniego tygodnia do teraz => changecount(/host/key,#10,"inc") → liczba wzrostów wartości (względem wartości sąsiedniej) wśród ostatnich 10 wartości => changecount(/host/key,24h,"dec") → liczba spadków wartości (względem wartości sąsiedniej) w ciągu ostatnich 24 godzin do teraz |
count (/host/key,(sec|#num)<:time shift>,<operator>,<pattern>) | ||
Ilość wartości w określonym okresie ewaluacji. | Zobacz wspólne parametry. operator (opcjonalny; musi być w podwójnym cudzysłowiu) Obsługiwane wartości operator :eq - równy (domyślnie dla integer, float) ne - nie równy gt - większy ge - większy lub równy lt - mniejszy le - mniejszy lub równy like (domyślnie dla string, text, log) - pasuje jeśli zawiera wzorzec (wrażliwe na wielkość liter) bitand - bitowe AND regexp - dopasowanie z uwzględnieniem wielkości liter wyrażenia regularnego podanego w pattern iregexp - dopasowanie bez uwzględniania wielkości liter wyrażenia regularnego podanego w pattern Zauważ, że: eq (domyślny), ne, gt, ge, lt, le, band, regexp, iregexp są obsługiwane dla pozycji typu liczba całkowita bez znaku eq (domyślny), ne, gt, ge, lt, le, regexp, iregexp są obsługiwane dla pozycji typu liczba zmiennoprzecinkowa like (domyślny), eq, ne, regexp, iregexp są obsługiwane dla pozycji typu znak, tekst i log pattern (opcjonalny) - wymagany wzorzec (argumenty typu ciąg znaków muszą być w podwójnym cudzysłowiu) |
Obsługiwane typy wartości: float, integer, string, text, log Pozycje zmiennoprzecinkowe posiadają precyzje 2.22e-16; jeśli baza danych nie została zaktualizowana precyzja wynosi 0,000001. Podając bitand jako trzeci parametr, czwarty parametr pattern może być określony jako dwie liczby, oddzielone '/': number_to_compare_with/mask. count() oblicza "bitowe AND" wartości i maski i porównuje wynik z number_to_compare_with. Jeśli wynik "bitowego AND" jest równy number_to_compare_with, wartość jest zliczana.Jeśli number_to_compare_with i mask są równe, należy podać tylko maskę (bez '/'). Podając regexp lub iregexp jako trzeci parametr, czwarty parametr pattern może być zwykłym lub globalnym (zaczynającym się od '@') wyrażeniem regularnym. W przypadku globalnych wyrażeń regularnych wrażliwość na wielkość liter dziedziczona jest z ustawień globalnego wyrażenia regularnego. W celu dopasowania za pomocą wyrażenia regularnego wartości zmiennoprzecinkowych zawsze zostaną przedstawione z 4 cyframi dziesiętnymi po '.'. Należy także zauważyć, że dla dużych liczb różnice w reprezentacji dziesiętnej (przechowywanej w bazie danych) i binarnej (używanej przez serwer Zabbix) mogą wpłynąć na 4. cyfrę dziesiętną.Przykłady: => count(/host/key,10m) → liczba wartości z ostatnich 10 minut do teraz => count(/host/key,10m,"like","error") → liczba wartości z ostatnich 10 minut do teraz, które zawierają 'error' => count(/host/key,10m,,12) → liczba wartości z ostatnich 10 minut do teraz, które są równe '12' => count(/host/key,10m,"gt",12) → liczba wartości z ostatnich 10 minut do teraz, które są większe niż '12' => count(/host/key,#10,"gt",12) → liczba wartości w ostatnich 10 wartościach do teraz, które są większe niż '12' => count(/host/key,10m:now-1d,"gt",12) → liczba wartości między 24 godzinami a 10 minutami i 24 godzinami temu od teraz, które były większe niż '12' => count(/host/key,10m,"bitand","6/7") → liczba wartości z ostatnich 10 minut do teraz, mających '110' (w kodzie binarnym) w 3 najmniej znaczących bitach. => count(/host/key,10m:now-1d) → liczba wartości między 24 godzinami a 10 minutami i 24 godzinami temu od teraz |
countunique (/host/key,(sec|#num)<:time shift>,<operator>,<pattern>) | ||
Liczba unikalnych wartości w określonym okresie ewaluacji. | Zobacz wspólne parametry. operator (opcjonalny; musi być w podwójnym cudzysłowiu) Obsługiwane wartości operator :eq - równy (domyślnie dla integer, float) ne - nie równy gt - większy ge - większy lub równy lt - mniejszy le - mniejszy lub równy like (domyślnie dla string, text, log) - pasuje jeśli zawiera wzorzec (wrażliwe na wielkość liter) bitand - bitowe AND regexp - dopasowanie z uwzględnieniem wielkości liter wyrażenia regularnego podanego w pattern iregexp - dopasowanie bez uwzględniania wielkości liter wyrażenia regularnego podanego w pattern Zauważ, że: eq (domyślny), ne, gt, ge, lt, le, band, regexp, iregexp są obsługiwane dla pozycji typu liczba całkowita bez znaku eq (domyślny), ne, gt, ge, lt, le, regexp, iregexp są obsługiwane dla pozycji typu liczba zmiennoprzecinkowa like (domyślny), eq, ne, regexp, iregexp są obsługiwane dla pozycji typu znak, tekst i log pattern (opcjonalny) - wymagany wzorzec (argumenty typu ciąg znaków muszą być w podwójnym cudzysłowiu) |
Obsługiwane typy wartości: float, integer, string, text, log Pozycje zmiennoprzecinkowe posiadają precyzje 2.22e-16; jeśli baza danych nie została zaktualizowana precyzja wynosi 0,000001. Podając bitand jako trzeci parametr, czwarty parametr pattern może być określony jako dwie liczby, oddzielone '/': number_to_compare_with/mask. count() oblicza "bitowe AND" wartości i maski i porównuje wynik z number_to_compare_with. Jeśli wynik "bitowego AND" jest równy number_to_compare_with, wartość jest zliczana.Jeśli number_to_compare_with i mask są równe, należy podać tylko maskę (bez '/'). Podając regexp lub iregexp jako trzeci parametr, czwarty parametr pattern może być zwykłym lub globalnym (zaczynającym się od '@') wyrażeniem regularnym. W przypadku globalnych wyrażeń regularnych wrażliwość na wielkość liter dziedziczona jest z ustawień globalnego wyrażenia regularnego. W celu dopasowania za pomocą wyrażenia regularnego wartości zmiennoprzecinkowych zawsze zostaną przedstawione z 4 cyframi dziesiętnymi po '.'. Należy także zauważyć, że dla dużych liczb różnice w reprezentacji dziesiętnej (przechowywanej w bazie danych) i binarnej (używanej przez serwer Zabbix) mogą wpłynąć na 4. cyfrę dziesiętną.Przykłady: => countunique(/host/key,10m) → liczba unikalnych wartości dla ostatnich 10 minut do teraz => countunique(/host/key,10m,"like","error") → liczba unikalnych wartości dla ostatnich 10 minut do teraz, które zawierają 'error' => countunique(/host/key,10m,"gt",12) → liczba unikalnych wartości dla ostatnich 10 minut do teraz, które są większe od '12' => countunique(/host/key,#10,"gt",12) → liczba unikalnych wartości w ostatnich 10 wartościach do teraz, które są większe od '12' => countunique(/host/key,10m:now-1d,"gt",12) → liczba unikalnych wartości między 24 godzinami i 10 minutami a 24 godzinami temu od teraz, które były większe od '12' => countunique(/host/key,10m,"bitand","6/7") → liczba unikalnych wartości dla ostatnich 10 minut do teraz, które mają '110' (w kodzie binarnym) w 3 najmniej znaczących bitach. => countunique(/host/key,10m:now-1d) → liczba unikalnych wartości między 24 godzinami i 10 minutami a 24 godzinami temu od teraz |
find (/host/key,<(sec|#num)<:time shift>>,<operator>,<pattern>) | ||
Znajdź dopasowanie wartości. | Zobacz wspólne parametry. sec lub #num (opcjonalne) - domyślnie do ostatniej wartości, jeśli nie jest określone operator (opcjonalny; musi być w podwójnym cudzysłowiu) Obsługiwane wartości operator :eq - równy (domyślnie dla integer, float) ne - nie równy gt - większy ge - większy lub równy lt - mniejszy le - mniejszy lub równy like (domyślnie dla string, text, log) - pasuje jeśli zawiera wzorzec (wrażliwe na wielkość liter) bitand - bitowe AND regexp - dopasowanie z uwzględnieniem wielkości liter wyrażenia regularnego podanego w pattern iregexp - dopasowanie bez uwzględniania wielkości liter wyrażenia regularnego podanego w pattern Zauważ, że: eq (domyślny), ne, gt, ge, lt, le, band, regexp, iregexp są obsługiwane dla pozycji typu liczba całkowita bez znaku eq (domyślny), ne, gt, ge, lt, le, regexp, iregexp są obsługiwane dla pozycji typu liczba zmiennoprzecinkowa like (domyślny), eq, ne, regexp, iregexp są obsługiwane dla pozycji typu znak, tekst i log pattern (opcjonalny) - wymagany wzorzec (argumenty typu ciąg znaków muszą być w podwójnym cudzysłowiu); Wyrażenie regularne zgodne z językiem Perl (PCRE), jeśli operator to regexp, iregexp. |
Obsługiwane typy wartości: float, integer, string, text, log Zwraca: 1 - znaleziono 0 - w przeciwnym razie Jeśli przetwarzanych jest więcej niż jedna wartość, zwracane jest '1', jeśli istnieje co najmniej jedna pasująca wartość. W przypadku użycia regexp lub iregexp jako trzeciego parametru, czwarty parametr pattern może być zwykłym lub globalnym (rozpoczynającym się od '@') wyrażeniem regularnym. W przypadku globalnych wyrażeń regularnych wrażliwość na wielkość liter jest dziedziczona z ustawień globalnego wyrażenia regularnego.Przykład: => find(/host/key,10m,"like","error") → znajdź wartość zawierającą 'error' w ciągu ostatnich 10 minut do teraz |
first (/host/key,sec<:time shift>) | ||
Pierwsza (najstarsza) wartość w określonym okresie ewaluacji. | Zobacz wspólne parametry. | Obsługiwane typy wartości: float, int, str, text, log Przykład: => first(/host/key,1h) → pobierz najstarszą wartość w ciągu ostatniej godziny do teraz Zobacz również last(). |
fuzzytime (/host/key,sec) | ||
Sprawdza, o ile pasywny agent różni się od czasu serwera/proxy Zabbix. | Zobacz wspólne parametry. | Obsługiwane typy wartości: float, int Zwraca: 1 - różnica między wartością pozycji pasywnej (jako znacznik czasu) a znacznikiem czasu serwera/proxy Zabbix (czas zbierania wartości) jest mniejsza lub równa T sekund 0 - w przeciwnym razie Zazwyczaj używane z pozycją 'system.localtime', aby sprawdzić, czy czas lokalny jest zsynchronizowany z czasem lokalnym serwera Zabbix. Uwaga 'system.localtime' musi być skonfigurowany jako sprawdzenie pasywne. Można go również użyć z kluczem vfs.file.time[/path/file,modify], aby sprawdzić, czy plik nie został zaktualizowany przez długi czas. Przykład: => fuzzytime(/host/key,60s)=0 → wykrycie problemu, jeśli różnica czasu przekracza 60 sekund Nie zaleca się stosowania tej funkcji w złożonych wyrażeniach wyzwalaczy (z uwzględnieniem wielu elementów), ponieważ może to spowodować nieoczekiwane wyniki (różnica czasu zostanie zmierzona za pomocą najnowszej metryki), np. w fuzzytime(/Host/system.localtime,60s)=0 or last(/Host/trap)<>0 |
last (/host/key,<#num<:time shift>>) | ||
Najnowsza wartość. | Zobacz wspólne parametry. #num (opcjonalne) - N-ta najnowsza wartość |
Obsługiwane typy wartości: float, int, str, text, log Należy zauważyć, że okres czasu z znakiem hash (#N) działa tutaj inaczej niż w przypadku wielu innych funkcji. Na przykład: last() zawsze jest równa last(#1) last(#3) - trzecia najnowsza wartość (nie trzy najnowsze wartości) Zabbix nie gwarantuje dokładnego porządku wartości, jeśli w historii istnieje więcej niż dwie wartości w ciągu jednej sekundy. Przykład: => last(/host/key) → pobierz ostatnią wartość => last(/host/key,#2) → pobierz poprzednią wartość => last(/host/key,#1) <> last(/host/key,#2) → ostatnia i poprzednia wartość się różnią Zobacz również first(). |
logeventid (/host/key,<#num<:time shift>>,<pattern>) | ||
Sprawdzenie, czy ID zdarzenia ostatniego wpisu w logu odpowiada wyrażeniu regularnemu. | Zobacz wspólne parametry. #num (opcjonalne) - N-ta najnowsza wartość pattern (opcjonalne) - wyrażenie regularne opisujące wymagany wzorzec, styl wyrażenia regularnego zgodne z językiem Perl (PCRE) (argumenty typu ciąg znaków muszą być w cudzysłowach). |
Obsługiwane typy wartości: log Zwraca: 0 - nie pasuje 1 - pasuje |
logseverity (/host/key,<#num<:time shift>>) | ||
Poziom zdarzenia logu ostatniego wpisu. | Zobacz wspólne parametry. #num (opcjonalne) - N-ta najnowsza wartość |
Obsługiwane typy wartości: log Zwraca: 0 - domyślny poziom zdarzenia N - poziom zdarzenia (liczba całkowita, przydatne dla dzienników zdarzeń systemu Windows: 1 - Informacja, 2 - Ostrzeżenie, 4 - Błąd, 7 - Audyt niepowodzeń, 8 - Audyt powodzeń, 9 - Krytyczny, 10 - Szczegółowy). Zabbix pobiera poziom zdarzenia logu z pola Information dziennika zdarzeń systemu Windows. |
logsource (/host/key,<#num<:time shift>>,<pattern>) | ||
Sprawdzanie, czy źródło logu ostatniego wpisu pasuje do wyrażenia regularnego. | Zobacz wspólne parametry. #num (opcjonalne) - N-ta najnowsza wartość pattern (opcjonalne) - wyrażenie regularne opisujące wymagany wzorzec, styl wyrażenia regularnego zgodne z językiem Perl (PCRE) (argumenty typu ciąg znaków muszą być w cudzysłowach). |
Obsługiwane typy wartości: log Zwraca: 0 - nie pasuje 1 - pasuje Zazwyczaj używane dla dzienników zdarzeń systemu Windows. Na przykład, logsource("VMware Server"). |
monodec (/host/key,(sec|#num)<:time shift>,<mode>) | ||
Sprawdź, czy wystąpił monotoniczny spadek wartości. | Zobacz wspólne parametry. mode (musi być w podwójnym cudzysłowiu) - weak (każda wartość jest mniejsza lub równa poprzedniej; domyślnie) lub strict (każda wartość zmniejszyła się) |
Obsługiwane typy wartości: int Zwraca 1, jeśli wszystkie elementy w okresie czasu ciągle maleją, w przeciwnym razie 0. Przykład: => monodec(/Host1/system.swap.size[all,free],60s) + monodec(/Host2/system.swap.size[all,free],60s) + monodec(/Host3/system.swap.size[all,free],60s) - oblicza, ile hostów miało spadek w rozmiarze wolnej przestrzeni wymiany |
monoinc (/host/key,(sec|#num)<:time shift>,<mode>) | ||
Sprawdź, czy wystąpił monotoniczny wzrost wartości. | Zobacz wspólne parametry. mode (musi być w podwójnym cudzysłowiu) - weak (każda wartość jest większa lub równa poprzedniej; domyślnie) lub strict (każda wartość zwiększyła się) |
Obsługiwane typy wartości: int Zwraca 1, jeśli wszystkie elementy w okresie czasu ciągle rosną, w przeciwnym razie 0. Przykład: => monoinc(/Host1/system.localtime,#3,"strict")=0 - sprawdź, czy lokalny czas systemu cały czas wzrastał |
nodata (/host/key,sec,<mode>) | ||
Sprawdź, czy nie otrzymano danych. | Zobacz wspólne parametry. Okres sec nie powinien być krótszy niż 30 sekund, ponieważ proces synchronizacji historii oblicza tę funkcję tylko co 30 sekund. nodata(/host/key,0) jest niedozwolone. mode - jeśli ustawiono na strict (podwójne cudzysłowy), ta funkcja będzie niewrażliwa na dostępność proxy (patrz komentarze po więcej szczegółów). |
Obsługiwane są wszystkie typy wartości. Zwraca: 1 - jeśli nie otrzymano danych w określonym czasie 0 - w przeciwnym razie Od wersji Zabbix 5.0, wyzwalacze 'nodata' monitorowane przez proxy są domyślnie wrażliwe na dostępność proxy - jeśli proxy stanie się niedostępne, wyzwalacze 'nodata' nie zostaną natychmiast uruchomione po przywróceniu połączenia, ale pominięte zostaną dane dla opóźnionego okresu. Zauważ, że dla pasywnych proxy wstrzymanie jest aktywowane, jeśli połączenie zostanie przywrócone po więcej niż 15 sekundach i nie wcześniej niż 2 & ProxyUpdateFrequency sekund później. Dla aktywnych proxy wstrzymanie jest aktywowane, jeśli połączenie zostanie przywrócone po więcej niż 15 sekundach. Aby wyłączyć wrażliwość na dostępność proxy, użyj trzeciego parametru, np.: nodata(/host/key,5m,"strict"); w tym przypadku funkcja będzie działać tak samo jak przed wersją 5.0.0 i uruchomi się zaraz po zakończeniu okresu ewaluacji (pięć minut) bez danych. Zauważ, że ta funkcja wyświetli błąd, jeśli w okresie pierwszego parametru: - nie ma danych i serwer Zabbix został ponownie uruchomiony - nie ma danych i okres konserwacji został zakończony - nie ma danych i pozycja został dodana lub ponownie włączona Błędy są wyświetlane w kolumnie Info w konfiguracji wyzwalacza. Ta funkcja może nie działać poprawnie, jeśli występują różnice czasu między serwerem Zabbix, proxy a agentem. Zobacz także: Wymóg synchronizacji czasu. |
percentile (/host/key,(sec|#num)<:time shift>,percentage) | ||
P-ta percentyla okresu, gdzie P (procent) jest określony przez trzeci parametr. | Zobacz wspólne parametry. percentage - liczba zmiennoprzecinkowa między 0 a 100 (włącznie) z maksymalnie 4 cyframi po przecinku |
Obsługiwane typy wartości: float, int |
rate (/host/key,sec<:time shift>) | ||
Średnia stopa wzrostu na sekundę monotonnie rosnącego licznika w określonym okresie czasu. | Zobacz wspólne parametry. | Obsługiwane typy wartości: float, int Funkcjonalnie odpowiada 'rate' z PromQL. Przykład: => rate(/host/key,30s) → Jeśli monotoniczny wzrost przez 30 sekund wynosi 20, ta funkcja zwróci 0.67. |