4 Funkcje historii

Wszystkie wymienione tutaj funkcje 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 obliczania.
count Liczba wartości w zdefiniowanym okresie obliczania.
countunique Liczba unikalnych wartości w zdefiniowanym okresie obliczania.
find Znajdź dopasowanie wartości w zdefiniowanym okresie obliczania.
first Pierwsza (najstarsza) wartość w zdefiniowanym okresie obliczania.
firstclock Znacznik czasu pierwszej (najstarszej) wartości w zdefiniowanym okresie obliczania.
fuzzytime Sprawdź, jak bardzo czas pasywnego agent różni się od czasu serwer/proxy Zabbix.
last Najnowsza wartość.
lastclock Znacznik czasu N-tej najnowszej wartości w zdefiniowanym okresie obliczania.
logeventid Sprawdź, czy identyfikator zdarzenia ostatniego wpisu logu pasuje do wyrażenia regularnego.
logseverity Poziom ważności logu ostatniego wpisu logu.
logsource Sprawdź, czy źródło logu ostatniego wpisu logu pasuje do wyrażenia regularnego.
logtimestamp Znacznik czasu komunikatu logu dla N-tej najnowszej wartości pozycja logu.
monodec Sprawdź, czy wystąpił monotoniczny spadek wartości.
monoinc Sprawdź, czy wystąpił monotoniczny wzrost wartości.
nodata Sprawdź, czy nie odebrano danych.
percentile P-ty percentyl okresu, gdzie P (wartość procentowa) jest określone przez trzeci parametr.
rate Średnie tempo wzrostu na sekundę dla monotonicznie rosnącego licznika w zdefiniowanym okresie czasu.
Wspólne parametry
  • /host/key to wspólny obowiązkowy pierwszy parametr dla funkcji odwołujących się do historii pozycji hosta
  • (sec|#num)<:time shift> to wspólny drugi parametr dla funkcji odwołujących się do historii pozycji hosta, gdzie:
    • sec - maksymalny okres obliczania w sekundach (mogą być używane sufiksy czasu), lub
    • #num - maksymalny zakres obliczania w ostatnio zebranych wartościach (jeśli jest poprzedzony znakiem kratki)
    • time shift (opcjonalnie) pozwala przesunąć punkt obliczania 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/key oraz (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 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 w pattern
    iregexp - dopasowanie bez uwzględniania wielkości liter do wyrażenia regularnego podanego w pattern
  • 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 pattern moż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 pattern moż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 w pattern
    iregexp - dopasowanie bez rozróżniania wielkości liter do wyrażenia regularnego podanego w pattern
  • 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 pattern moż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 pattern moż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 w pattern (z uwzględnieniem wielkości liter)
    bitand - bitowe AND
    regexp - dopasowanie z uwzględnieniem wielkości liter do wyrażenia regularnego podanego w pattern
    iregexp - dopasowanie bez uwzględniania wielkości liter do wyrażenia regularnego podanego w pattern
  • 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 operator to 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 pattern moż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 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:

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:

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:

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ówne last(/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:

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 logu pasuje do wyrażenia regularnego.
Obsługiwane typy wartości: Log.
Zwraca: 0 - nie pasuje; 1 - pasuje.

Parametry:

  • Zobacz wspólne parametry
  • #num (opcjonalnie) - N-ta najnowsza wartość
  • pattern (opcjonalnie) - wyrażenie regularne opisujące wymagany wzorzec, w stylu Perl Compatible Regular Expression (PCRE) (argumenty typu string muszą być ujęte w podwójny cudzysłów)

Przykłady:

logeventid(/host/eventlog[Security],,"4625")=1 #znaleziono wpis logu z identyfikatorem pasującym do "4625" (nieudane uwierzytelnienie)
logeventid(/host/eventlog[System],,"6008|41")=1 #znaleziono wpis logu z identyfikatorem pasującym do "6008" lub "41"
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:

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 wspólne parametry
  • #num (opcjonalnie) - N-ta najnowsza wartość
  • pattern (opcjonalnie) - wyrażenie regularne opisujące wymagany wzorzec, w stylu Perl Compatible Regular Expression (PCRE) (argumenty typu string muszą być ujęte w podwójny cudzysłów)

Zwykle używane dla logó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" oraz 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:

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 brak otrzymanych danych.
Obsługiwane typy wartości: Integer, Float, Character, Text, Log.
Zwraca: 1 - jeśli w zdefiniowanym przedziale czasu nie otrzymano danych; 0 - w przeciwnym razie.

Parametry:

  • Zobacz wspólne parametry
  • sec - okres 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 (w podwójnych cudzysłowach), ta funkcja będzie niewrażliwa na dostępność proxy (szczegóły 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 uruchomią się natychmiast po przywróceniu połączenia, lecz pominą dane za opóźniony okres. Należy pamiętać, że dla pasywnych proxy tłumienie jest aktywowane, jeśli połączenie zostanie przywrócone po więcej niż 15 sekundach i nie mniej niż 2 sekundy później. Dla aktywnych proxy tłumienie 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 takim przypadku funkcja uruchomi się, 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ńczono konserwację
    - nie ma danych i pozycja została dodana lub ponownie włączona.
  • Błędy są wyświetlane w kolumnie Info w konfiguracji wyzwalacza.
  • Ta funkcja może nie działać prawidłowo, jeśli występują różnice czasu między serwerem Zabbix, proxy i agentem. Zobacz także: Wymaganie synchronizacji czasu.

Przykład:

nodata(/host/agent.ping,5m)=1 #wyzwalacz, jeśli przez 5 minut nie otrzymano 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:

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.