Funkcje historii
Wszystkie funkcje wymienione tutaj są obsługiwane w:
Funkcje są wymienione bez dodatkowych informacji. Kliknij funkcję, aby zobaczyć pełne szczegóły.
| Function | Description |
|---|---|
| change | Wielkość różnicy między poprzednią a najnowszą wartością. |
| changecount | Liczba zmian między sąsiednimi wartościami w zdefiniowanym okresie oceny. |
| count | Liczba wartości w zdefiniowanym okresie oceny. |
| countunique | Liczba unikalnych wartości w zdefiniowanym okresie oceny. |
| find | Znajdź dopasowanie wartości w zdefiniowanym okresie oceny. |
| first | Pierwsza (najstarsza) wartość w zdefiniowanym okresie oceny. |
| firstclock | Znacznik czasu pierwszej (najstarszej) wartości w zdefiniowanym okresie oceny. |
| fuzzytime | Sprawdź, o ile czas pasywnego agenta różni się od czasu serwera/proxy Zabbix. |
| last | Najnowsza wartość. |
| lastclock | Znacznik czasu N-tej najnowszej wartości w zdefiniowanym okresie oceny. |
| logeventid | Sprawdź, czy identyfikator zdarzenia ostatniego wpisu dziennika pasuje do wyrażenia regularnego. |
| logseverity | Poziom ważności dziennika ostatniego wpisu dziennika. |
| logsource | Sprawdź, czy źródło dziennika ostatniego wpisu dziennika pasuje do wyrażenia regularnego. |
| logtimestamp | Znacznik czasu komunikatu dziennika dla N-tej najnowszej wartości pozycji dziennika. |
| monodec | Sprawdź, czy występował monotoniczny spadek wartości. |
| monoinc | Sprawdź, czy występował monotoniczny wzrost wartości. |
| nodata | Sprawdź, czy nie otrzymano danych. |
| percentile | P-ty percentyl okresu, gdzie P (procent) jest określony przez trzeci parametr. |
| rate | Średnie tempo wzrostu na sekundę monotonicznie rosnącego licznika w zdefiniowanym przedziale czasu. |
Parametry wspólne
/host/keyjest wspólnym obowiązkowym pierwszym parametrem dla funkcji odwołujących się do historii pozycji hosta(sec|#num)<:time shift>jest wspólnym drugim parametrem dla funkcji odwołujących się do historii pozycji hosta, gdzie:- sec - maksymalny okres oceny w sekundach (można używać sufiksów czasu), lub
- #num - maksymalny zakres oceny w najnowszych zebranych wartościach (jeśli poprzedzony znakiem hash)
- przesunięcie czasu (opcjonalne) pozwala przesunąć punkt oceny wstecz w czasie. Zobacz więcej szczegółów dotyczących określania przesunięcia czasu.
Szczegóły funkcji
Kilka ogólnych uwag dotyczących parametrów funkcji:
- Parametry funkcji są oddzielane przecinkiem
- Opcjonalne parametry funkcji (lub części parametrów) są oznaczone za pomocą
<> - Parametry specyficzne dla danej funkcji są opisane przy każdej funkcji
- Parametry
/host/keyoraz(sec|#num)<:time shift>nigdy nie mogą być ujmowane w cudzysłów
change(/host/key)
Wielkość różnicy między poprzednią a najnowszą wartością.
Obsługiwane typy wartości: Float, Integer, String, Text, Log.
Dla ciągów znaków zwraca: 0 - wartości są równe; 1 - wartości różnią się.
Parametry: zobacz wspólne parametry.
Uwagi:
- Zostanie obliczona różnica liczbowa, jak pokazano na poniższych przykładowych wartościach wejściowych („poprzednia” i „najnowsza” wartość = różnica):
'1' i '5' =+4
'3' i '1' =-2
'0' i '-2.5' =-2.5. - W wyzwalaczach funkcja jest przydatna do wykrywania nagłych skoków (lub spadków), resetów liczników oraz przejść stanów liczbowych.
- Zobacz także: abs do porównania.
Przykłady:
change(/host/system.uptime)<0 #zmiana czasu działania systemu była ujemna od ostatniej wartości (wskazuje to na restart)
change(/host/system.cpu.load[all,avg1])>2 #obciążenie CPU (w ciągu jednej minuty) wzrosło o więcej niż 2 od ostatniej wartości
change(/host/vfs.fs.size[/,free])<-1G #ilość wolnego miejsca na dysku spadła o więcej niż 1 GB między kolejnymi sprawdzeniami
changecount(/host/key,(sec|#num)<:time shift>,<mode>)
Liczba zmian między sąsiednimi wartościami w zdefiniowanym okresie obliczania.
Obsługiwane typy wartości: Float, Integer, String, Text, Log.
Parametry:
- Zobacz wspólne parametry
- mode (musi być ujęty w podwójny cudzysłów) — możliwe wartości: all — zliczaj wszystkie zmiany (domyślnie); dec — zliczaj spadki; inc — zliczaj wzrosty
Uwagi:
- Dla nienumerycznych typów wartości parametr mode jest ignorowany.
- W wyzwalaczach przydatne do wykrywania częstych zmian stanu (wskazujących na niestabilność).
Przykłady:
changecount(/host/icmpping,10m)>5 #status ping zmienił się więcej niż 5 razy w ciągu 10 minut
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5 #stan operacyjny eth0 zmienił się więcej niż 5 razy w ciągu godziny
changecount(/host/proc.num[httpd],15m)>10 #liczba procesów httpd zmieniła się więcej niż 10 razy w ciągu 15 minut
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 chwili obecnej
count(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)
Liczba wartości w zdefiniowanym okresie oceny.
Obsługiwane typy wartości: Float, Integer, String, Text, Log.
Parametry:
- Zobacz common parameters
- operator (musi być ujęty w podwójne cudzysłowy)
Obsługiwane
operators:
eq - równe (domyślnie dla integer, float)
ne - nierówne
gt - większe niż
ge - większe lub równe
lt - mniejsze niż
le - mniejsze lub równe
like (domyślnie dla string, text, log) - dopasowuje, jeśli zawiera wzorzec (rozróżnia wielkość liter)
bitand - bitowe AND
regexp - dopasowanie wyrażenia regularnego podanego wpatternz uwzględnieniem wielkości liter
iregexp - dopasowanie wyrażenia regularnego podanego wpatternbez uwzględniania wielkości liter - pattern - wymagany wzorzec (argumenty typu string muszą być ujęte w podwójne cudzysłowy)
Uwagi:
- Pozycje typu Float są dopasowywane z dokładnością 2.22e-16.
- like nie jest obsługiwany jako operator dla wartości typu integer.
- like i bitand nie są obsługiwane jako operatory dla wartości typu float.
- Dla wartości typu string, text i log obsługiwane są tylko operatory eq, ne, like, regexp i iregexp.
- Przy operatorze bitand czwarty parametr
patternmoże być określony jako dwie liczby rozdzielone znakiem '/': number_to_compare_with/mask. count() oblicza "bitowe AND" z wartości i maski, a następnie porównuje wynik z number_to_compare_with. Jeśli wynik "bitowego AND" jest równy number_to_compare_with, wartość jest liczona.
Jeśli number_to_compare_with i mask są równe, wystarczy podać tylko mask (bez '/'). - Przy operatorze regexp lub iregexp czwarty parametr
patternmoże być zwykłym wyrażeniem regularnym lub globalnym (zaczynającym się od '@') wyrażeniem regularnym. W przypadku globalnych wyrażeń regularnych rozróżnianie wielkości liter jest dziedziczone z ustawień globalnego wyrażenia regularnego. Na potrzeby dopasowania regexp wartości typu float będą zawsze reprezentowane z 4 cyframi po przecinku. Należy też pamiętać, że dla dużych liczb różnica między reprezentacją dziesiętną (przechowywaną w bazie danych) a binarną (używaną przez serwer Zabbix) może wpływać na 4. cyfrę po przecinku.
Przykłady:
count(/host/icmpping,30m,,"0")>5 #ping nie powiódł się więcej niż 5 razy w ciągu 30 minut
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 i 10 minutami a 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, które mają '110' (w systemie binarnym) w 3 najmniej znaczących bitach
count(/host/key,10m:now-1d) #liczba wartości między 24 godzinami i 10 minutami a 24 godzinami temu od teraz
countunique(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)
Liczba unikalnych wartości w zdefiniowanym okresie oceny.
Obsługiwane typy wartości: Float, Integer, String, Text, Log.
Parametry:
- Zobacz common parameters
- operator (musi być ujęty w podwójne cudzysłowy).
Obsługiwane
operators:
eq - równe (domyślnie dla integer, float)
ne - różne
gt - większe
ge - większe lub równe
lt - mniejsze
le - mniejsze lub równe
like (domyślnie dla string, text, log) - dopasowuje, jeśli zawiera wzorzec (uwzględnia wielkość liter)
bitand - bitowe AND
regexp - dopasowanie wyrażenia regularnego podanego wpatternz uwzględnieniem wielkości liter
iregexp - dopasowanie wyrażenia regularnego podanego wpatternbez uwzględniania wielkości liter - pattern - wymagany wzorzec (argumenty typu string muszą być ujęte w podwójne cudzysłowy)
Uwagi:
- Pozycje typu Float są dopasowywane z dokładnością 2.22e-16.
- like nie jest obsługiwany jako operator dla wartości typu integer.
- like i bitand nie są obsługiwane jako operatory dla wartości typu float.
- Dla wartości typu string, text i log obsługiwane są tylko operatory eq, ne, like, regexp i iregexp.
- Przy operatorze bitand czwarty parametr
patternmoże być określony jako dwie liczby rozdzielone znakiem '/': number_to_compare_with/mask. countunique() oblicza "bitwise AND" z wartości i maski oraz porównuje wynik z number_to_compare_with. Jeśli wynik "bitwise AND" jest równy number_to_compare_with, wartość jest liczona.
Jeśli number_to_compare_with i mask są równe, wystarczy podać tylko mask (bez '/'). - Przy operatorze regexp lub iregexp czwarty parametr
patternmoże być zwykłym wyrażeniem regularnym lub global wyrażeniem regularnym (zaczynającym się od '@'). W przypadku globalnych wyrażeń regularnych uwzględnianie wielkości liter jest dziedziczone z ustawień globalnego wyrażenia regularnego. Na potrzeby dopasowania regexp wartości typu float będą zawsze reprezentowane z 4 cyframi po przecinku '.'. Należy też pamiętać, że w przypadku dużych liczb różnica między reprezentacją dziesiętną (przechowywaną w bazie danych) a binarną (używaną przez serwer Zabbix) może wpływać na 4. cyfrę po przecinku.
Przykłady:
countunique(/host/key,10m) #liczba unikalnych wartości z ostatnich 10 minut do teraz
countunique(/host/key,10m,"like","error") #liczba unikalnych wartości z ostatnich 10 minut do teraz, które zawierają 'error'
countunique(/host/key,10m,,12) #liczba unikalnych wartości z ostatnich 10 minut do teraz, które są równe '12'
countunique(/host/key,10m,"gt",12) #liczba unikalnych wartości z ostatnich 10 minut do teraz, które są większe niż '12'
countunique(/host/key,#10,"gt",12) #liczba unikalnych wartości z ostatnich 10 wartości do teraz, które są większe niż '12'
countunique(/host/key,10m:now-1d,"gt",12) #liczba unikalnych wartości między 24 godzinami a 10 minutami oraz 24 godzinami temu od teraz, które były większe niż '12'
countunique(/host/key,10m,"bitand","6/7") #liczba unikalnych wartości z ostatnich 10 minut do teraz, mających '110' (w zapisie binarnym) w 3 najmniej znaczących bitach
countunique(/host/key,10m:now-1d) #liczba unikalnych wartości między 24 godzinami a 10 minutami oraz 24 godzinami temu od teraz
find(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)
Znajduje dopasowanie wartości w zdefiniowanym okresie oceny.
Obsługiwane typy wartości: Float, Integer, String, Text, Log.
Zwraca: 1 - znaleziono; 0 - w przeciwnym razie.
Parametry:
- Zobacz common parameters
- sec lub #num (opcjonalnie) - domyślnie używana jest najnowsza wartość, jeśli nie zostanie określona
- operator (musi być ujęty w podwójne cudzysłowy)
Obsługiwane
operators:
eq - równe (domyślnie dla integer, float)
ne - nierówne
gt - większe
ge - większe lub równe
lt - mniejsze
le - mniejsze lub równe
like (domyślnie dla string, text, log) - dopasowuje, jeśli zawiera ciąg podany wpattern(uwzględnia wielkość liter)
bitand - bitowe AND
regexp - dopasowanie wyrażenia regularnego podanego wpatternz uwzględnieniem wielkości liter
iregexp - dopasowanie wyrażenia regularnego podanego wpatternbez uwzględniania wielkości liter - pattern - wymagany wzorzec (argumenty tekstowe muszą być ujęte w podwójne cudzysłowy); wyrażenie regularne Perl Compatible Regular Expression (PCRE), jeśli
operatorto regexp, iregexp
Uwagi:
- Jeśli przetwarzanych jest więcej niż jedna wartość, zwracane jest '1', jeśli istnieje co najmniej jedna pasująca wartość.
- like nie jest obsługiwany jako operator dla wartości typu integer.
- like i bitand nie są obsługiwane jako operatory dla wartości typu float.
- Dla wartości typu string, text i log obsługiwane są tylko operatory eq, ne, like, regexp i iregexp.
- W przypadku użycia regexp lub iregexp jako operatora, czwarty parametr
patternmoże być zwykłym wyrażeniem regularnym lub globalnym (zaczynającym się od '@').
W przypadku globalnych wyrażeń regularnych rozróżnianie wielkości liter jest dziedziczone z ustawień globalnego wyrażenia regularnego.
Przykłady:
find(/host/key,10m,"like","error") #znajduje wartość zawierającą 'error' w ciągu ostatnich 10 minut do teraz
find(/host/agent.version,,"like","beta")=1 #agent Zabbix ma wersję beta, musi zostać zaktualizowany
find(/host/log[/var/log/nginx/access.log],,"regexp"," 500 ")=1 #został znaleziony wewnętrzny błąd serwera WWW
first(/host/key,sec<:time shift>)
Pierwsza (najstarsza) wartość w zdefiniowanym okresie obliczania.
Obsługiwane typy wartości: Float, Integer, String, Text, Log.
Parametry:
- Zobacz wspólne parametry
Zobacz także last().
Przykład:
first(/host/key,1h) #retrieve the oldest value within the last hour until now
firstclock(/host/key,sec<:time shift>)
Znacznik czasu najstarszej wartości w zdefiniowanym okresie obliczania.
Obsługiwane typy wartości: Float, Integer, String, Text, Log.
Parametry:
- Zobacz wspólne parametry.
Funkcja kończy się błędem, jeśli w podanym okresie nie zebrano żadnych danych.
Zobacz także lastclock().
Przykłady:
firstclock(/host/key,1h) #pobierz znacznik czasu najstarszej wartości z ostatniej godziny
firstclock(/host/key,1h:now-24h) #pobierz znacznik czasu najstarszej wartości z ostatniej godziny sprzed doby
fuzzytime(/host/key,sec)
Sprawdza, o ile czas pasywnego agenta różni się od czasu serwera/proxy Zabbixa.
Obsługiwane typy wartości: Float, Integer.
Zwraca: 1 - różnica między wartością pozycji pasywnej (jako znacznik czasu) a znacznikiem czasu serwera/proxy Zabbixa (czasem zbierania wartości) jest mniejsza lub równa sec sekund; 0 - w przeciwnym razie.
Parametry:
- Zobacz wspólne parametry.
Uwagi:
- Zwykle używane z pozycją 'system.localtime' do sprawdzenia, czy czas lokalny jest zsynchronizowany z czasem lokalnym serwera Zabbixa. Uwaga, że 'system.localtime' musi być skonfigurowane jako sprawdzenie pasywne dla agenta Zabbixa; w przypadku agenta Zabbix 2 może być skonfigurowane jako sprawdzenie aktywne.
- Może być również używane z kluczem
vfs.file.time[/path/file,modify]do sprawdzenia, czy plik nie był aktualizowany przez długi czas. - Ta funkcja nie jest zalecana do użycia w złożonych wyrażeniach wyzwalaczy (z udziałem wielu pozycji), ponieważ może powodować nieoczekiwane wyniki (różnica czasu będzie mierzona na podstawie najnowszej metryki), np. w
fuzzytime(/Host/system.localtime,60s)=0 or last(/Host/trap)<>0.
Przykłady:
fuzzytime(/host/system.localtime,5m)=0 #czas lokalny klienta różni się od czasu serwera/proxy Zabbixa o więcej niż 5 minut
fuzzytime(/host/system.localtime,5m)=0 and nodata(/host/system.localtime,10m)=0 #czas lokalny klienta różni się od czasu serwera/proxy Zabbixa o więcej niż 5 minut (przy jednoczesnym upewnieniu się, że pozycja nie przestała raportować danych)
last(/host/key,<#num<:time shift>>)
Najnowsza wartość.
Obsługiwane typy wartości: Float, Integer, String, Text, Log.
Parametry:
- Zobacz wspólne parametry
- #num (opcjonalnie) — N-ta najnowsza wartość
Uwagi:
- Należy zwrócić uwagę, że okres czasu oznaczony hashem (#N) działa tutaj inaczej niż w przypadku wielu innych funkcji.
Na przykład:
last(/host/key)jest zawsze równelast(/host/key,#1);last(/host/key,#3)— trzecia najnowsza wartość (nie trzy najnowsze wartości). - Zabbix nie gwarantuje dokładnej kolejności wartości, jeśli w historii istnieje więcej niż dwie wartości w ciągu jednej sekundy.
- Zobacz także first().
Przykłady:
last(/host/key) #retrieve the last value
last(/host/key,#2) #retrieve the previous value
last(/host/key,#1)<>last(/host/key,#2) #last two values differ
lastclock(/host/key,<#num<:time shift>>)
Znacznik czasu N-tej najnowszej wartości w zdefiniowanym okresie obliczania.
Obsługiwane typy wartości: Float, Integer, String, Text, Log.
Parametry:
- Zobacz wspólne parametry;
- #num (opcjonalnie) — N-ta najnowsza wartość.
Funkcja kończy się błędem, jeśli w podanym okresie nie zebrano żadnych danych lub nie zebrano N-tej wartości.
Zobacz także firstclock().
Przykłady:
lastclock(/host/key) #pobierz znacznik czasu najnowszej wartości
lastclock(/host/key,#2) #pobierz znacznik czasu 2. najnowszej wartości
now()-lastclock(/host/heartbeat.item)>300 #minęło więcej niż 5 minut od aktualizacji pozycji heartbeat
lastclock(/host/system.cpu.load[all,avg1])-lastclock(/host/system.cpu.load[all,avg1],#2)>300 #interwał aktualizacji między dwiema ostatnimi wartościami przekracza 5 minut
((now()-lastclock(/host/system.cpu.load[all,avg1])<120 and last(/host/system.cpu.load[all,avg1])>5)) #wartość CPU jest wysoka, a wartość jest świeża (mniej niż 2 minuty)
logeventid(/host/key,<#num<:time shift>>,<pattern>)
Sprawdza, czy identyfikator zdarzenia ostatniego wpisu dziennika pasuje do wyrażenia regularnego.
Obsługiwane typy wartości: Log.
Zwraca: 0 - nie pasuje; 1 - pasuje.
Parametry:
- Zobacz common parameters
- #num (opcjonalnie) - N-ta najnowsza wartość
- pattern (opcjonalnie) - wyrażenie regularne opisujące wymagany wzorzec, w stylu Perl Compatible Regular Expression (PCRE) (argumenty tekstowe muszą być ujęte w podwójne cudzysłowy)
Przykłady:
logeventid(/host/eventlog[Security],,"^4625$")=1 #wpis dziennika z identyfikatorem pasującym do "4625" (nieudane uwierzytelnienie) znaleziony
logeventid(/host/eventlog[System],,"^(6008|41)$")=1 #wpis dziennika z identyfikatorem pasującym do "6008" lub "41" znaleziony
logseverity(/host/key,<#num<:time shift>>)
Poziom ważności ostatniego wpisu logu.
Obsługiwane typy wartości: Log.
Zwraca: 0 - domyślny poziom ważności; N - poziom ważności (liczba całkowita, przydatne dla dzienników zdarzeń Windows: 1 - Informacja, 2 - Ostrzeżenie, 4 - Błąd, 7 - Audyt niepowodzeń, 8 - Audyt powodzeń, 9 - Krytyczny, 10 - Szczegółowy).
Parametry:
- Zobacz wspólne parametry
- #num (opcjonalnie) - N-ta najnowsza wartość
Zabbix pobiera poziom ważności logu z pola Information dziennika zdarzeń Windows.
Przykłady:
logseverity(/host/log[/var/log/syslog],10m)>3 #a log entry with severity above "3" found
logseverity(/host/eventlog[System],10m)=4 #a log entry with severity equaling "Error" found
logsource(/host/key,<#num<:time shift>>,<pattern>)
Sprawdza, czy źródło logu ostatniego wpisu logu pasuje do wyrażenia regularnego.
Obsługiwane typy wartości: Log.
Zwraca: 0 - nie pasuje; 1 - pasuje.
Parametry:
- Zobacz common parameters
- #num (opcjonalnie) - N-ta najnowsza wartość
- pattern (opcjonalnie) - wyrażenie regularne opisujące wymagany wzorzec, w stylu Perl Compatible Regular Expression (PCRE) (argumenty tekstowe muszą być ujęte w podwójne cudzysłowy)
Zwykle używane dla dzienników zdarzeń systemu Windows.
Przykłady:
logsource(/host/eventlog[Application],,"MSSQLSERVER")=1 #znaleziono wpis logu ze źródłem pasującym do "MSSQLSERVER"
logsource(/host/eventlog[System],,"Service Control Manager")=1 #znaleziono wpis logu ze źródłem pasującym do "Service Control Manager"
logsource(/host/eventlog[System],,"Service Control Manager")=1 and logeventid(/host/eventlog[System],,"^7031$")=1 #znaleziono wpis logu ze źródłem pasującym do "Service Control Manager" i identyfikatorem zdarzenia pasującym do "7031"
logtimestamp(/host/key,<#num<:time shift>>)
Znacznik czasu komunikatu dziennika dla N-tej najnowszej wartości pozycji dziennika.
Obsługiwane typy wartości: Log.
Parametry:
- Zobacz wspólne parametry;
- #num (opcjonalnie) — N-ta najnowsza wartość.
Uwagi:
- Obliczanie przesunięcia czasu opiera się na zegarze wartości pozycji, a nie na znaczniku czasu komunikatu dziennika;
- Funkcja kończy się błędem, jeśli:
- odebrano pozycję typu innego niż log;
- w podanym okresie nie zebrano żadnych danych;
- nie zebrano N-tej wartości;
- komunikat dziennika nie zawiera wartości znacznika czasu.
Przykłady:
logtimestamp(/host/key) #retrieve the timestamp of the latest log message
logtimestamp(/host/key,#2) #retrieve the timestamp of the 2nd latest log message
logtimestamp(/host/key,#3:now-1d) #retrieve the timestamp of the 3rd latest log message a day ago
monodec(/host/key,(sec|#num)<:time shift>,<mode>)
Sprawdza, czy nastąpił monotoniczny spadek wartości.
Obsługiwane typy wartości: Integer.
Zwraca: 1 - jeśli wszystkie elementy w okresie czasu stale maleją; 0 - w przeciwnym razie.
Parametry:
- Zobacz wspólne parametry
- mode (musi być ujęty w podwójny cudzysłów) - weak (każda wartość jest mniejsza lub taka sama jak poprzednia; domyślnie) lub strict (każda wartość zmalała)
Przykłady:
monodec(/host/system.swap.size[all,free],60s) + monodec(/host2/system.swap.size[all,free],60s) + monodec(/host3/system.swap.size[all,free],60s) #oblicza, na ilu hostach nastąpił spadek wolnego rozmiaru pamięci swap
monodec(/host/proc.num[nginx],10m,"strict")=1 #liczba procesów nginx monotonicznie malała przez 10 minut
monoinc(/host/key,(sec|#num)<:time shift>,<mode>)
Sprawdza, czy wystąpił monotoniczny wzrost wartości.
Obsługiwane typy wartości: Integer.
Zwraca: 1 - jeśli wszystkie elementy w okresie czasu stale rosną; 0 - w przeciwnym razie.
Parametry:
- Zobacz wspólne parametry
- mode (musi być ujęty w podwójny cudzysłów) - weak (każda wartość jest większa lub taka sama jak poprzednia; domyślnie) lub strict (każda wartość wzrosła)
Przykłady:
monoinc(/host/system.localtime,#3,"strict")=0 #lokalny czas systemowy nie wzrastał w sposób ciągły
monoinc(/host/vfs.dir.count[/mnt/data/logs],24h,"weak")=0 #wyzwalacz, jeśli liczba plików pozostawała bez zmian przez 24 godziny (oczekiwany jest wzrost)
nodata(/host/key,sec,<mode>)
Sprawdza, czy nie odebrano żadnych danych.
Obsługiwane typy wartości: Integer, Float, Character, Text, Log.
Zwraca: 1 - jeśli w zdefiniowanym okresie nie odebrano żadnych danych; 0 - w przeciwnym razie.
Parametry:
- Zobacz wspólne parametry
- sec - okres nie powinien być krótszy niż 30 sekund, ponieważ proces synchronizatora historii oblicza tę funkcję tylko co 30 sekund;
nodata(/host/key,0)jest niedozwolone - mode - jeśli ustawiono wartość strict (w podwójnych cudzysłowach), funkcja będzie niewrażliwa na dostępność proxy (szczegółowe informacje znajdują się w komentarzach)
Komentarze:
- 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ą uruchomione natychmiast po przywróceniu połączenia, lecz pominą dane z opóźnionego okresu.
Należy pamiętać, że w przypadku pasywnych proxy tłumienie jest aktywowane, jeśli połączenie zostanie przywrócone po upływie więcej niż 15 sekund i nie później niż 2 sekundy.
W przypadku aktywnych proxy tłumienie jest aktywowane, jeśli połączenie zostanie przywrócone po upływie więcej niż 15 sekund.
Aby wyłączyć wrażliwość na dostępność proxy, użyj trzeciego parametru, np.:
nodata(/host/key,5m,"strict"); w takim przypadku funkcja zostanie uruchomiona, gdy tylko upłynie okres oceny (pięć minut) bez danych. - Ta funkcja wyświetli błąd, jeśli w okresie określonym przez 1. parametr:
- nie ma danych i serwer Zabbix został uruchomiony ponownie
- nie ma danych i zakończył się okres konserwacji
- nie ma danych, a pozycja została dodana lub ponownie włączona. - Błędy są wyświetlane w kolumnie Info na liście wyzwalaczy.
- Ta funkcja może nie działać prawidłowo, jeśli między serwerem Zabbix, proxy i agentem występują różnice czasu. Zobacz także: Wymagania dotyczące synchronizacji czasu.
Przykład:
nodata(/host/agent.ping,5m)=1 #wyzwalacz, jeśli przez 5 minut nie odebrano danych od agenta Zabbix
percentile(/host/key,(sec|#num)<:time shift>,percentage)
P-ty percentyl okresu, gdzie P (percentage) jest określony przez trzeci parametr.
Obsługiwane typy wartości: Float, Integer.
Parametry:
- Zobacz wspólne parametry
- percentage - liczba zmiennoprzecinkowa z zakresu od 0 do 100 (włącznie), z maksymalnie 4 cyframi po przecinku
Przykłady:
percentile(/host/net.if.in[eth0,bytes],1h,95)>1000000 #95. percentyl wejściowego ruchu sieciowego (bajty/s) w ciągu 1 godziny przekroczył próg (np. 1 MB/s)
percentile(/host/system.cpu.util,5m,95)>80 #95. percentyl procentowego wykorzystania CPU w czasie użytkownika przekroczył 80
percentile(/host/icmppingsec[192.168.0.2],15m,95)>0.15 #większość pomiarów opóźnienia jest poniżej 150 ms, ale górny ogon rozkładu (górne 5%) wskazuje na regularne lagi
percentile(/host/net.if.in[eth0,bytes],1h,50) #oblicz 50. percentyl (wartość mediany) przychodzącego ruchu sieciowego dla godziny; daje to inny wynik niż avg() (średnia), ponieważ percentile nie uwzględnia wartości odstających
(percentile(/host/net.if.in[eth0,bytes],1h,50)+percentile(/host/net.if.in[eth0,bytes],1h,51))/2 #oblicz dokładną wartość mediany dla parzystej liczby wartości w ciągu godziny
rate(/host/key,sec<:time shift>)
Średni przyrost na sekundę w monotonicznie rosnącym liczniku w zdefiniowanym okresie czasu.
Obsługiwane typy wartości: Float, Integer.
Parametry:
- Zobacz wspólne parametry
Funkcjonalnie odpowiada funkcji 'rate' w PromQL.
Przykłady:
rate(/host/key,30s) #jeśli monotoniczny przyrost w ciągu 30 sekund wynosi 20, ta funkcja zwraca 0.67.
rate(/host/net.if.in[eth0,bytes],5m)>500000 #szybkość ruchu przychodzącego interfejsu na eth0 przekroczyła 500 KB/s w ciągu ostatnich 5 minut
rate(/host/app.requests.count,1m)>100 #licznik żądań wzrósł do >100 żądań na sekundę w ostatniej minucie
Zobacz wszystkie obsługiwane funkcje.