4 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 nastąpił monotoniczny spadek wartości. |
| monoinc | Sprawdź, czy nastąpił monotoniczny wzrost wartości. |
| nodata | Sprawdź, czy nie odebrano 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 okresie czasu. |
Wspólne parametry
/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)
- time shift (opcjonalnie) umożliwia przesunięcie punktu oceny wstecz w czasie. Zobacz więcej szczegółów dotyczących określania time shift.
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 są różne.
Parametry: zobacz common parameters.
Komentarze:
- Różnica liczbowa zostanie obliczona, jak widać na poniższych przykładowych wartościach wejściowych ('previous' i 'latest' value = różnica):
'1' i '5' =+4
'3' i '1' =-2
'0' i '-2.5' =-2.5. - Zobacz także: abs do porównania.
Przykłady:
change(/host/system.uptime)<0 #zmiana uptime systemu była ujemna od ostatniej wartości (co wskazuje na restart)
change(/host/system.cpu.load[all,avg1])>2 #obciążenie CPU (dla jednej minuty) wzrosło o więcej niż 2 od ostatniej wartości
change(/host/vfs.fs.size[/,free])<-1G #wolna przestrzeń dyskowa spadła o więcej niż 1 GB między sprawdzeniami
changecount(/host/key,(sec|#num)<:time shift>,<mode>)
Liczba zmian między sąsiednimi wartościami w zdefiniowanym okresie oceny.
Obsługiwane typy wartości: Float, Integer, String, Text, Log.
Parametry:
- Zobacz common parameters
- mode (musi być ujęty w podwójne cudzysłowy) - możliwe wartości: all - zliczaj wszystkie zmiany (domyślnie); dec - zliczaj spadki; inc - zliczaj wzrosty
Dla nieliczbowych typów wartości parametr mode jest ignorowany.
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 interfejsu 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 (w odniesieniu do sąsiedniej wartości) spośród ostatnich 10 wartości
changecount(/host/key,24h,"dec") #liczba spadków wartości (w odniesieniu do sąsiedniej wartości) z ostatnich 24 godzin do teraz
count(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)
Liczba wartości w zdefiniowanym okresie obliczania.
Obsługiwane typy wartości: Float, Integer, String, Text, Log.
Parametry:
- Zobacz wspólne parametry
- operator (musi być ujęty w podwójny cudzysłów)
Obsługiwane
operatory:
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) - pasuje, jeśli zawiera wzorzec (z uwzględnieniem wielkości liter)
bitand - bitowe AND
regexp - dopasowanie z uwzględnieniem wielkości liter do wyrażenia regularnego podanego wpattern
iregexp - dopasowanie bez uwzględniania wielkości liter do wyrażenia regularnego podanego wpattern - pattern - wymagany wzorzec (argumenty typu string muszą być ujęte w podwójny cudzysłów)
Komentarze:
- Pozycje typu float są dopasowywane z precyzją 2.22e-16.
- like nie jest obsługiwany jako operator dla wartości integer.
- like i bitand nie są obsługiwane jako operatory dla wartości float.
- Dla wartości string, text i log obsługiwane są tylko operatory eq, ne, like, regexp i iregexp.
- Gdy jako operator używany jest bitand, czwarty parametr
patternmożna określić jako dwie liczby rozdzielone znakiem '/': number_to_compare_with/mask. count() oblicza „bitowe AND” z wartości i mask oraz 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, wystarczy podać tylko mask (bez '/'). - Gdy jako operator używany jest regexp lub iregexp, czwarty parametr
patternmoże być zwykłym lub globalnym (zaczynającym się od '@') wyrażeniem regularnym. W przypadku globalnych wyrażeń regularnych rozróżnianie wielkości liter jest dziedziczone z ustawień globalnych wyrażeń regularnych. Na potrzeby dopasowania regexp wartości float będą zawsze przedstawiane z 4 cyframi dziesiętnymi po '.'. Należy również 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:
count(/host/icmpping,30m,,"0")>5 #ping has failed more than 5 times in 30 minutes
count(/host/key,10m,"like","error") #the number of values for the last 10 minutes until now that contain 'error'
count(/host/key,10m,,12) #the number of values for the last 10 minutes until now that equal '12'
count(/host/key,10m,"gt",12) #the number of values for the last 10 minutes until now that are over '12'
count(/host/key,#10,"gt",12) #the number of values within the last 10 values until now that are over '12'
count(/host/key,10m:now-1d,"gt",12) #the number of values between 24 hours and 10 minutes and 24 hours ago from now that were over '12'
count(/host/key,10m,"bitand","6/7") #the number of values for the last 10 minutes until now having '110' (in binary) in the 3 least significant bits
count(/host/key,10m:now-1d) #the number of values between 24 hours and 10 minutes and 24 hours ago from now
countunique(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)
Liczba unikalnych wartości w zdefiniowanym okresie obliczania.
Obsługiwane typy wartości: Float, Integer, String, Text, Log.
Parametry:
- Zobacz wspólne parametry
- operator (musi być ujęty w podwójny cudzysłów).
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) - pasuje, jeśli zawiera wzorzec (z rozróżnianiem wielkości liter)
bitand - bitowe AND
regexp - dopasowanie z rozróżnianiem wielkości liter do wyrażenia regularnego podanego wpattern
iregexp - dopasowanie bez rozróżniania wielkości liter do wyrażenia regularnego podanego wpattern - pattern - wymagany wzorzec (argumenty typu string muszą być ujęte w podwójny cudzysłów)
Uwagi:
- Pozycje typu float są dopasowywane z precyzją 2.22e-16.
- like nie jest obsługiwany jako operator dla wartości integer.
- like i bitand nie są obsługiwane jako operatory dla wartości float.
- Dla wartości string, text i log obsługiwane są tylko operatory eq, ne, like, regexp oraz iregexp.
- Przy użyciu bitand jako operatora, czwarty parametr
patternmożna określić jako dwie liczby rozdzielone znakiem '/': number_to_compare_with/mask. countunique() oblicza „bitowe AND” z wartości i mask, 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 zliczana.
Jeśli number_to_compare_with i mask są równe, wystarczy podać tylko mask (bez '/'). - Przy użyciu regexp lub iregexp jako operatora, czwarty parametr
patternmoże być zwykłym lub globalnym (zaczynającym się od '@') wyrażeniem regularnym. W przypadku globalnych wyrażeń regularnych rozróżnianie wielkości liter jest dziedziczone z ustawień globalnych wyrażeń regularnych. Na potrzeby dopasowania regexp wartości float będą zawsze przedstawiane z 4 cyframi dziesiętnymi po '.'. Należy również 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ę dziesiętną.
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 równych '12'
countunique(/host/key,10m,"gt",12) #liczba unikalnych wartości z ostatnich 10 minut do teraz większych niż '12'
countunique(/host/key,#10,"gt",12) #liczba unikalnych wartości wśród ostatnich 10 wartości do teraz większych niż '12'
countunique(/host/key,10m:now-1d,"gt",12) #liczba unikalnych wartości między 24 godzinami i 10 minutami temu a 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' (binarnie) w 3 najmniej znaczących bitach
countunique(/host/key,10m:now-1d) #liczba unikalnych wartości między 24 godzinami i 10 minutami temu a 24 godzinami temu od teraz
find(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)
Znajduje dopasowanie wartości w zdefiniowanym okresie obliczania.
Obsługiwane typy wartości: Float, Integer, String, Text, Log.
Zwraca: 1 - znaleziono; 0 - w przeciwnym razie.
Parametry:
- Zobacz wspólne parametry
- sec lub #num (opcjonalne) - jeśli nie podano, domyślnie używana jest najnowsza wartość
- operator (musi być ujęty w podwójny cudzysłów)
Obsługiwane
operatory:
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 ciąg znaków podany wpattern(z uwzględnieniem wielkości liter)
bitand - bitowe AND
regexp - dopasowanie z uwzględnieniem wielkości liter do wyrażenia regularnego podanego wpattern
iregexp - dopasowanie bez uwzględniania wielkości liter do wyrażenia regularnego podanego wpattern - pattern - wymagany wzorzec (argumenty typu string muszą być ujęte w podwójny cudzysłów); wyrażenie regularne Perl Compatible Regular Expression (PCRE), jeśli
operatorto regexp, iregexp
Uwagi:
- Jeśli przetwarzana 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 integer.
- like i bitand nie są obsługiwane jako operatory dla wartości float.
- Dla wartości string, text i log obsługiwane są tylko operatory eq, ne, like, regexp i iregexp.
- Gdy jako operator użyto regexp lub iregexp, czwarty parametr
patternmoże być zwykłym 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.
Przykłady:
find(/host/key,10m,"like","error") #znajdź 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 #znaleziono 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, jak bardzo czas pasywnego agenta różni się od czasu serwera/proxy Zabbix.
Obsługiwane typy wartości: Float, Integer.
Zwraca: 1 - różnica między wartością pasywnej pozycji (jako znacznik czasu) a znacznikiem czasu serwera/proxy Zabbix (czasem pobrania wartości) jest mniejsza lub równa sec sekund; 0 - w przeciwnym razie.
Parametry:
- Zobacz wspólne parametry.
Komentarze:
- Zwykle używane z pozycją 'system.localtime' do sprawdzenia, czy czas lokalny jest zsynchronizowany z czasem lokalnym serwera Zabbix. Uwaga: dla agenta Zabbix pozycja 'system.localtime' musi być skonfigurowana jako sprawdzenie pasywne; w Zabbix agent 2 może być skonfigurowana 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 wieloma pozycjami), ponieważ może powodować nieoczekiwane wyniki (różnica czasu będzie mierzona względem 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 Zabbix 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 Zabbix 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), ta 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 pomijanie jest aktywowane, jeśli połączenie zostanie przywrócone po upływie więcej niż 15 sekund, ale nie wcześniej niż po 2 sekundach.
W przypadku aktywnych proxy pomijanie 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, na przykład:
nodata(/host/key,5m,"strict"); w takim przypadku funkcja zostanie uruchomiona natychmiast po upływie okresu oceny (pięciu minut) bez danych. - Ta funkcja wyświetli błąd, jeśli w okresie określonym przez pierwszy 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<:przesunięcie czasu>)
Średnie tempo wzrostu na sekundę monotonicznie rosnącego licznika w zdefiniowanym przedziale czasu.
Obsługiwane typy wartości: Float, Integer.
Parametry:
- Zobacz common parameters
Funkcjonalnie odpowiada funkcji 'rate' w PromQL.
Przykłady:
rate(/host/key,30s) #jeśli monotoniczny wzrost w ciągu 30 sekund wynosi 20, ta funkcja zwraca 0.67.
rate(/host/net.if.in[eth0,bytes],5m)>500000 #tempo ruchu przychodzącego interfejsu na eth0 przekroczyło 500 KB/s w ciągu ostatnich 5 minut
rate(/host/app.requests.count,1m)>100 #licznik liczby żądań wzrósł do >100 żądań na sekundę w ostatniej minucie
Zobacz wszystkie obsługiwane funkcje.