4 Verlaufsfunktionen

Alle hier aufgeführten Funktionen werden unterstützt in:

Die Funktionen sind ohne zusätzliche Informationen aufgeführt. Klicken Sie auf die Funktion, um die vollständigen Details anzuzeigen.

Function Description
change Die Differenz zwischen dem vorherigen und dem neuesten Wert.
changecount Die Anzahl der Änderungen zwischen benachbarten Werten innerhalb des definierten Auswertungszeitraums.
count Die Anzahl der Werte innerhalb des definierten Auswertungszeitraums.
countunique Die Anzahl der eindeutigen Werte innerhalb des definierten Auswertungszeitraums.
find Sucht eine Wertübereinstimmung innerhalb des definierten Auswertungszeitraums.
first Der erste (älteste) Wert innerhalb des definierten Auswertungszeitraums.
firstclock Der Zeitstempel des ersten (ältesten) Werts innerhalb des definierten Auswertungszeitraums.
fuzzytime Prüft, wie stark sich die Zeit des passiven Agent von der Zeit des Zabbix Server/Proxy unterscheidet.
last Der neueste Wert.
lastclock Der Zeitstempel des N-tjüngsten Werts innerhalb des definierten Auswertungszeitraums.
logeventid Prüft, ob die Ereignis-ID des letzten Protokolleintrags mit einem regulären Ausdruck übereinstimmt.
logseverity Der Schweregrad des letzten Protokolleintrags.
logsource Prüft, ob die Protokollquelle des letzten Protokolleintrags mit einem regulären Ausdruck übereinstimmt.
logtimestamp Der Zeitstempel der Protokollmeldung des N-tjüngsten Werts eines Log-Datenpunkts.
monodec Prüft, ob es eine monotone Abnahme der Werte gegeben hat.
monoinc Prüft, ob es eine monotone Zunahme der Werte gegeben hat.
nodata Prüft, ob keine Daten empfangen wurden.
percentile Das P-te Perzentil eines Zeitraums, wobei P (Prozentsatz) durch den dritten Parameter angegeben wird.
rate Die durchschnittliche Rate pro Sekunde der Zunahme eines monoton steigenden Zählers innerhalb des definierten Zeitraums.
Allgemeine Parameter
  • /host/key ist ein gemeinsamer obligatorischer erster Parameter für die Funktionen, die auf die Datenpunkthistorie des Hosts verweisen
  • (sec|#num)<:time shift> ist ein gemeinsamer zweiter Parameter für die Funktionen, die auf die Datenpunkthistorie des Hosts verweisen, wobei:
    • sec - maximaler Auswertungszeitraum in Sekunden (Zeit-Suffixe können verwendet werden), oder
    • #num - maximaler Auswertungsbereich in den zuletzt erfassten Werten (wenn ein Hash-Zeichen vorangestellt ist)
    • time shift (optional) ermöglicht es, den Auswertungszeitpunkt zeitlich zurückzuverschieben. Siehe weitere Details zur Angabe von time shift.

Funktionsdetails

Einige allgemeine Hinweise zu Funktionsparametern:

  • Funktionsparameter werden durch ein Komma getrennt
  • Optionale Funktionsparameter (oder Parameterteile) werden durch < > angegeben
  • Funktionsspezifische Parameter werden bei jeder Funktion beschrieben
  • Die Parameter /host/key und (sec|#num)<:time shift> dürfen niemals in Anführungszeichen gesetzt werden
change(/host/key)

Die Differenz zwischen dem vorherigen und dem neuesten Wert.
Unterstützte Wertetypen: Float, Integer, String, Text, Log.
Für Zeichenfolgen wird zurückgegeben: 0 - Werte sind gleich; 1 - Werte unterscheiden sich.

Parameter: siehe allgemeine Parameter.

Kommentare:

  • Die numerische Differenz wird berechnet, wie an diesen eingehenden Beispielwerten zu sehen ist ('vorheriger' und 'neuester' Wert = Differenz):
    '1' und '5' = +4
    '3' und '1' = -2
    '0' und '-2.5' = -2.5.
  • In Auslösern nützlich, um plötzliche Spitzen (oder Einbrüche), Zähler-Resets und numerische Zustandsübergänge zu erkennen.
  • Siehe auch: abs zum Vergleich.

Beispiele:

change(/host/system.uptime)<0 #system uptime change has been negative since the last value (indicating a reboot)
change(/host/system.cpu.load[all,avg1])>2 #CPU load (for one minute) has jumped by more than 2 since the last value
change(/host/vfs.fs.size[/,free])<-1G #free disk space has dropped by more than 1 GB between checks
changecount(/host/key,(sec|#num)<:time shift>,<mode>)

Die Anzahl der Änderungen zwischen benachbarten Werten innerhalb des definierten Auswertungszeitraums.
Unterstützte Werttypen: Float, Integer, String, Text, Log.

Parameter:

  • Siehe allgemeine Parameter
  • mode (muss in doppelte Anführungszeichen gesetzt werden) – mögliche Werte: all – alle Änderungen zählen (Standard); dec – Abnahmen zählen; inc – Zunahmen zählen

Kommentare:

  • Bei nicht numerischen Werttypen wird der Parameter mode ignoriert.
  • In Auslösern nützlich, um häufige Statusänderungen zu erkennen (ein Hinweis auf Instabilität).

Beispiele:

changecount(/host/icmpping,10m)>5 #ping status has changed more than 5 times in 10 minutes
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5 #operational state of eth0 has changed more than 5 times in an hour
changecount(/host/proc.num[httpd],15m)>10 #the number of httpd processes has changed more than 10 times in 15 minutes
changecount(/host/key,#10,"inc") #the number of value increases (relative to the adjacent value) among the last 10 values
changecount(/host/key,24h,"dec") #the number of value decreases (relative to the adjacent value) for the last 24 hours until now
count(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

Die Anzahl der Werte innerhalb des definierten Auswertungszeitraums.
Unterstützte Wertetypen: Float, Integer, String, Text, Log.

Parameter:

  • Siehe allgemeine Parameter
  • operator (muss in doppelte Anführungszeichen gesetzt werden) Unterstützte operators:
    eq - gleich (Standard für integer, float)
    ne - ungleich
    gt - größer als
    ge - größer oder gleich
    lt - kleiner als
    le - kleiner oder gleich
    like (Standard für string, text, log) - trifft zu, wenn das Muster enthalten ist (Groß-/Kleinschreibung wird beachtet)
    bitand - bitweises AND
    regexp - Übereinstimmung unter Beachtung der Groß-/Kleinschreibung mit dem in pattern angegebenen regulären Ausdruck
    iregexp - Übereinstimmung ohne Beachtung der Groß-/Kleinschreibung mit dem in pattern angegebenen regulären Ausdruck
  • pattern - das erforderliche Muster (String-Argumente müssen in doppelte Anführungszeichen gesetzt werden)

Kommentare:

  • Float-Datenpunkte werden mit einer Genauigkeit von 2.22e-16 abgeglichen.
  • like wird als operator für Integer-Werte nicht unterstützt.
  • like und bitand werden als operatoren für Float-Werte nicht unterstützt.
  • Für String-, Text- und Log-Werte werden nur die operatoren eq, ne, like, regexp und iregexp unterstützt.
  • Bei Verwendung von bitand als operator kann der vierte Parameter pattern als zwei durch '/' getrennte Zahlen angegeben werden: number_to_compare_with/mask. count() berechnet aus dem Wert und der mask ein "bitweises AND" und vergleicht das Ergebnis mit number_to_compare_with. Wenn das Ergebnis des "bitweisen AND" gleich number_to_compare_with ist, wird der Wert gezählt.
    Wenn number_to_compare_with und mask gleich sind, muss nur die mask angegeben werden (ohne '/').
  • Bei Verwendung von regexp oder iregexp als operator kann der vierte Parameter pattern ein gewöhnlicher oder globaler (mit '@' beginnender) regulärer Ausdruck sein. Bei globalen regulären Ausdrücken wird die Beachtung der Groß-/Kleinschreibung aus den Einstellungen des globalen regulären Ausdrucks übernommen. Für den Zweck des regexp-Abgleichs werden Float-Werte immer mit 4 Nachkommastellen nach '.' dargestellt. Beachten Sie außerdem, dass bei großen Zahlen Unterschiede zwischen der dezimalen Darstellung (in der Datenbank gespeichert) und der binären Darstellung (vom Zabbix Server verwendet) die 4. Nachkommastelle beeinflussen können.

Beispiele:

count(/host/icmpping,30m,,"0")>5 #Ping ist in 30 Minuten mehr als 5 Mal fehlgeschlagen
count(/host/key,10m,"like","error") #die Anzahl der Werte in den letzten 10 Minuten bis jetzt, die 'error' enthalten
count(/host/key,10m,,12) #die Anzahl der Werte in den letzten 10 Minuten bis jetzt, die gleich '12' sind
count(/host/key,10m,"gt",12) #die Anzahl der Werte in den letzten 10 Minuten bis jetzt, die größer als '12' sind
count(/host/key,#10,"gt",12) #die Anzahl der Werte innerhalb der letzten 10 Werte bis jetzt, die größer als '12' sind
count(/host/key,10m:now-1d,"gt",12) #die Anzahl der Werte zwischen vor 24 Stunden und vor 24 Stunden minus 10 Minuten, die größer als '12' waren
count(/host/key,10m,"bitand","6/7") #die Anzahl der Werte in den letzten 10 Minuten bis jetzt, die in den 3 niederwertigsten Bits '110' (binär) haben
count(/host/key,10m:now-1d) #die Anzahl der Werte zwischen vor 24 Stunden und vor 24 Stunden minus 10 Minuten
countunique(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

Die Anzahl eindeutiger Werte innerhalb des definierten Auswertungszeitraums.
Unterstützte Wertetypen: Float, Integer, String, Text, Log.

Parameter:

  • Siehe allgemeine Parameter
  • operator (muss in doppelte Anführungszeichen gesetzt werden). Unterstützte operators:
    eq - gleich (Standard für integer, float)
    ne - ungleich
    gt - größer als
    ge - größer oder gleich
    lt - kleiner als
    le - kleiner oder gleich
    like (Standard für string, text, log) - stimmt überein, wenn das Muster enthalten ist (Groß-/Kleinschreibung wird beachtet)
    bitand - bitweises UND
    regexp - Groß-/Kleinschreibung beachtende Übereinstimmung mit dem in pattern angegebenen regulären Ausdruck
    iregexp - Groß-/Kleinschreibung ignorierende Übereinstimmung mit dem in pattern angegebenen regulären Ausdruck
  • pattern - das erforderliche Muster (String-Argumente müssen in doppelte Anführungszeichen gesetzt werden)

Kommentare:

  • Float-Datenpunkte werden mit einer Genauigkeit von 2.22e-16 abgeglichen.
  • like wird als operator für Integer-Werte nicht unterstützt.
  • like und bitand werden als operatoren für Float-Werte nicht unterstützt.
  • Für String-, Text- und Log-Werte werden nur die operatoren eq, ne, like, regexp und iregexp unterstützt.
  • Bei bitand als operator kann der vierte Parameter pattern als zwei durch '/' getrennte Zahlen angegeben werden: number_to_compare_with/mask. countunique() berechnet aus dem Wert und der mask ein "bitweises UND" und vergleicht das Ergebnis mit number_to_compare_with. Wenn das Ergebnis des "bitweisen UND" gleich number_to_compare_with ist, wird der Wert gezählt.
    Wenn number_to_compare_with und mask gleich sind, muss nur die mask angegeben werden (ohne '/').
  • Bei regexp oder iregexp als operator kann der vierte Parameter pattern ein gewöhnlicher oder globaler (mit '@' beginnender) regulärer Ausdruck sein. Bei globalen regulären Ausdrücken wird die Groß-/Kleinschreibung aus den Einstellungen des globalen regulären Ausdrucks übernommen. Für den Zweck des regexp-Abgleichs werden Float-Werte immer mit 4 Dezimalstellen nach '.' dargestellt. Beachten Sie außerdem, dass bei großen Zahlen Unterschiede zwischen der dezimalen Darstellung (in der Datenbank gespeichert) und der binären Darstellung (vom Zabbix Server verwendet) die 4. Dezimalstelle beeinflussen können.

Beispiele:

countunique(/host/key,10m) #die Anzahl eindeutiger Werte in den letzten 10 Minuten bis jetzt
countunique(/host/key,10m,"like","error") #die Anzahl eindeutiger Werte in den letzten 10 Minuten bis jetzt, die 'error' enthalten
countunique(/host/key,10m,,12) #die Anzahl eindeutiger Werte in den letzten 10 Minuten bis jetzt, die gleich '12' sind
countunique(/host/key,10m,"gt",12) #die Anzahl eindeutiger Werte in den letzten 10 Minuten bis jetzt, die größer als '12' sind
countunique(/host/key,#10,"gt",12) #die Anzahl eindeutiger Werte innerhalb der letzten 10 Werte bis jetzt, die größer als '12' sind
countunique(/host/key,10m:now-1d,"gt",12) #die Anzahl eindeutiger Werte zwischen vor 24 Stunden und vor 24 Stunden plus 10 Minuten ab jetzt, die größer als '12' waren
countunique(/host/key,10m,"bitand","6/7") #die Anzahl eindeutiger Werte in den letzten 10 Minuten bis jetzt, die in den 3 niederwertigsten Bits '110' (binär) haben
countunique(/host/key,10m:now-1d) #die Anzahl eindeutiger Werte zwischen vor 24 Stunden und vor 24 Stunden plus 10 Minuten ab jetzt
find(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

Findet eine Wertübereinstimmung innerhalb des definierten Auswertungszeitraums.
Unterstützte Werttypen: Float, Integer, String, Text, Log.
Rückgabewert: 1 - gefunden; 0 - andernfalls.

Parameter:

  • Siehe gemeinsame Parameter
  • sec oder #num (optional) - standardmäßig der letzte Wert, wenn nicht angegeben
  • operator (muss in doppelte Anführungszeichen gesetzt werden) Unterstützte operators:
    eq - gleich (Standard für integer, float)
    ne - ungleich
    gt - größer als
    ge - größer oder gleich
    lt - kleiner als
    le - kleiner oder gleich
    like (Standard für string, text, log) - stimmt überein, wenn die in pattern angegebene Zeichenkette enthalten ist (Groß-/Kleinschreibung wird beachtet)
    bitand - bitweises AND
    regexp - Übereinstimmung unter Beachtung der Groß-/Kleinschreibung mit dem in pattern angegebenen regulären Ausdruck
    iregexp - Übereinstimmung ohne Beachtung der Groß-/Kleinschreibung mit dem in pattern angegebenen regulären Ausdruck
  • pattern - das erforderliche Muster (String-Argumente müssen in doppelte Anführungszeichen gesetzt werden); regulärer Ausdruck nach Perl Compatible Regular Expression (PCRE), wenn operator regexp oder iregexp ist

Kommentare:

  • Wenn mehr als ein Wert verarbeitet wird, wird '1' zurückgegeben, wenn es mindestens einen übereinstimmenden Wert gibt.
  • like wird als Operator für Integer-Werte nicht unterstützt.
  • like und bitand werden als Operatoren für Float-Werte nicht unterstützt.
  • Für String-, Text- und Log-Werte werden nur die Operatoren eq, ne, like, regexp und iregexp unterstützt.
  • Bei Verwendung von regexp oder iregexp als Operator kann der vierte Parameter pattern ein gewöhnlicher oder globaler (beginnend mit '@') regulärer Ausdruck sein. Bei globalen regulären Ausdrücken wird die Groß-/Kleinschreibung aus den Einstellungen des globalen regulären Ausdrucks übernommen.

Beispiele:

find(/host/key,10m,"like","error") #find a value that contains 'error' within the last 10 minutes until now
find(/host/agent.version,,"like","beta")=1 #Zabbix agent has beta version, must be upgraded
find(/host/log[/var/log/nginx/access.log],,"regexp"," 500 ")=1 #internal web server error has been found
first(/host/key,sec<:time shift>)

Der erste (der älteste) Wert innerhalb des definierten Auswertungszeitraums.
Unterstützte Werttypen: Float, Integer, String, Text, Log.

Parameter:

Siehe auch last().

Beispiel:

first(/host/key,1h) #retrieve the oldest value within the last hour until now
firstclock(/host/key,sec<:time shift>)

Der Zeitstempel des ältesten Werts innerhalb des definierten Auswertungszeitraums.
Unterstützte Werttypen: Float, Integer, String, Text, Log.

Parameter:

Die Funktion schlägt mit einem Fehler fehl, wenn im angegebenen Zeitraum keine Daten erfasst wurden.

Siehe auch lastclock().

Beispiele:

firstclock(/host/key,1h) #Zeitstempel des ältesten Werts innerhalb der letzten Stunde abrufen
firstclock(/host/key,1h:now-24h) #Zeitstempel des ältesten Werts innerhalb der letzten Stunde vor einem Tag abrufen
fuzzytime(/host/key,sec)

Prüft, wie stark sich die Zeit des passiven Agent von der Zeit des Zabbix Server/Proxy unterscheidet.
Unterstützte Werttypen: Float, Integer.
Rückgabewerte: 1 - die Differenz zwischen dem Wert des passiven Datenpunkts (als Zeitstempel) und dem Zeitstempel des Zabbix Server/Proxy (dem Zeitpunkt der Werterfassung) ist kleiner oder gleich sec Sekunden; andernfalls 0.

Parameter:

Kommentare:

  • Wird üblicherweise mit dem Datenpunkt 'system.localtime' verwendet, um zu prüfen, dass die lokale Zeit mit der lokalen Zeit des Zabbix Server synchron ist. Beachten Sie, dass 'system.localtime' für den Zabbix Agent als passive Prüfung konfiguriert sein muss; bei Zabbix Agent 2 kann er als aktive Prüfung konfiguriert werden.
  • Kann auch mit dem Schlüssel vfs.file.time[/path/file,modify] verwendet werden, um zu prüfen, dass die Datei lange Zeit nicht aktualisiert wurde.
  • Diese Funktion wird nicht zur Verwendung in komplexen Auslöserausdrücken empfohlen (mit mehreren beteiligten Datenpunkten), da dies zu unerwarteten Ergebnissen führen kann (die Zeitdifferenz wird anhand der neuesten Metrik gemessen), z. B. in fuzzytime(/Host/system.localtime,60s)=0 or last(/Host/trap)<>0.

Beispiele:

fuzzytime(/host/system.localtime,5m)=0 #lokale Client-Zeit unterscheidet sich um mehr als 5 Minuten von der Zeit des Zabbix Server/Proxy
fuzzytime(/host/system.localtime,5m)=0 and nodata(/host/system.localtime,10m)=0 #lokale Client-Zeit unterscheidet sich um mehr als 5 Minuten von der Zeit des Zabbix Server/Proxy (wobei sichergestellt wird, dass der Datenpunkt nicht aufgehört hat, Daten zu melden)
last(/host/key,<#num<:time shift>>)

Der zuletzt empfangene Wert.
Unterstützte Werttypen: Float, Integer, String, Text, Log.

Parameter:

Kommentare:

  • Beachten Sie, dass ein mit Hash gekennzeichneter Zeitraum (#N) hier anders funktioniert als bei vielen anderen Funktionen. Zum Beispiel: last(/host/key) ist immer gleich last(/host/key,#1); last(/host/key,#3) - der drittletzte Wert (nicht die letzten drei Werte).
  • Zabbix garantiert nicht die genaue Reihenfolge der Werte, wenn innerhalb einer Sekunde mehr als zwei Werte in der Historie vorhanden sind.
  • Siehe auch first().

Beispiele:

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>>)

Der Zeitstempel des N-tjüngsten Werts innerhalb des definierten Auswertungszeitraums.
Unterstützte Werttypen: Float, Integer, String, Text, Log.

Parameter:

Die Funktion schlägt mit einem Fehler fehl, wenn im angegebenen Zeitraum keine Daten erfasst wurden oder kein N-ter Wert erfasst wurde.

Siehe auch firstclock().

Beispiele:

lastclock(/host/key) #Zeitstempel des neuesten Werts abrufen
lastclock(/host/key,#2) #Zeitstempel des zweitneuesten Werts abrufen
now()-lastclock(/host/heartbeat.item)>300 #mehr als 5 Minuten sind vergangen, seit der heartbeat-Datenpunkt aktualisiert wurde
lastclock(/host/system.cpu.load[all,avg1])-lastclock(/host/system.cpu.load[all,avg1],#2)>300 #das Aktualisierungsintervall zwischen den letzten beiden Werten beträgt mehr als 5 Minuten
((now()-lastclock(/host/system.cpu.load[all,avg1])<120 and last(/host/system.cpu.load[all,avg1])>5)) #CPU-Wert ist hoch und der Wert ist aktuell (weniger als 2 Minuten)
logeventid(/host/key,<#num<:time shift>>,<pattern>)

Prüft, ob die Ereignis-ID des letzten Log-Eintrags mit einem regulären Ausdruck übereinstimmt.
Unterstützte Werttypen: Log.
Rückgabewerte: 0 - stimmt nicht überein; 1 - stimmt überein.

Parameter:

  • Siehe allgemeine Parameter
  • #num (optional) - der N-te zuletzt empfangene Wert
  • pattern (optional) - der reguläre Ausdruck, der das erforderliche Muster beschreibt, im Stil von Perl Compatible Regular Expression (PCRE) (String-Argumente müssen in doppelte Anführungszeichen gesetzt werden)

Beispiele:

logeventid(/host/eventlog[Security],,"4625")=1 #a log entry with ID matching "4625" (failed authentication) found
logeventid(/host/eventlog[System],,"6008|41")=1 #a log entry with ID matching "6008" or "41" found
logseverity(/host/key,<#num<:time shift>>)

Protokollschwere des letzten Protokolleintrags.
Unterstützte Werttypen: Log.
Rückgabewerte: 0 - Standardschweregrad; N - Schweregrad (integer, nützlich für Windows-Ereignisprotokolle: 1 - Information, 2 - Warnung, 4 - Fehler, 7 - Überwachungsfehler, 8 - Überwachungserfolg, 9 - Kritisch, 10 - Ausführlich).

Parameter:

Zabbix übernimmt den Protokollschweregrad aus dem Feld Information des Windows-Ereignisprotokolls.

Beispiele:

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>)

Prüft, ob die Log-Quelle des letzten Log-Eintrags mit einem regulären Ausdruck übereinstimmt.
Unterstützte Wertetypen: Log.
Rückgabewerte: 0 - stimmt nicht überein; 1 - stimmt überein.

Parameter:

  • Siehe allgemeine Parameter
  • #num (optional) - der N-te zuletzt empfangene Wert
  • pattern (optional) - der reguläre Ausdruck, der das erforderliche Muster beschreibt, im Stil von Perl Compatible Regular Expression (PCRE) (String-Argumente müssen in doppelte Anführungszeichen gesetzt werden)

Wird normalerweise für Windows-Ereignisprotokolle verwendet.

Beispiele:

logsource(/host/eventlog[Application],,"MSSQLSERVER")=1 #ein Log-Eintrag mit einer Quelle, die mit "MSSQLSERVER" übereinstimmt, wurde gefunden
logsource(/host/eventlog[System],,"Service Control Manager")=1 #ein Log-Eintrag mit einer Quelle, die mit "Service Control Manager" übereinstimmt, wurde gefunden
logsource(/host/eventlog[System],,"Service Control Manager")=1 and logeventid(/host/eventlog[System],,"7031")=1 #ein Log-Eintrag mit einer Quelle, die mit "Service Control Manager" und einer Ereignis-ID, die mit "7031" übereinstimmt, wurde gefunden
logtimestamp(/host/key,<#num<:time shift>>)

Der Zeitstempel der Log-Nachricht des N-tjüngsten Werts eines Log-Datenpunkts.
Unterstützte Wertetypen: Log.

Parameter:

Kommentare:

  • Die Berechnung der Zeitverschiebung basiert auf der Uhrzeit des Datenpunktwerts, nicht auf dem Zeitstempel der Log-Nachricht;
  • Die Funktion schlägt mit einem Fehler fehl, wenn:
    • ein Datenpunkt eines Nicht-Log-Typs empfangen wird;
    • im angegebenen Zeitraum keine Daten erfasst wurden;
    • kein N-ter Wert erfasst wurde;
    • die Log-Nachricht keinen Zeitstempelwert enthält.

Beispiele:

logtimestamp(/host/key) #Zeitstempel der neuesten Log-Nachricht abrufen
logtimestamp(/host/key,#2) #Zeitstempel der zweitneuesten Log-Nachricht abrufen
logtimestamp(/host/key,#3:now-1d) #Zeitstempel der drittneuesten Log-Nachricht von vor einem Tag abrufen
monodec(/host/key,(sec|#num)<:time shift>,<mode>)

Prüft, ob es einen monotonen Rückgang von Werten gegeben hat.
Unterstützte Wertetypen: Integer.
Rückgabewert: 1 - wenn alle Elemente im Zeitraum fortlaufend abnehmen; 0 - andernfalls.

Parameter:

  • Siehe allgemeine Parameter
  • mode (muss in doppelte Anführungszeichen gesetzt werden) - weak (jeder Wert ist kleiner oder gleich dem vorherigen; Standard) oder strict (jeder Wert hat abgenommen)

Beispiele:

monodec(/host/system.swap.size[all,free],60s) + monodec(/host2/system.swap.size[all,free],60s) + monodec(/host3/system.swap.size[all,free],60s) #calculate in how many hosts there has been a decrease in free swap size
monodec(/host/proc.num[nginx],10m,"strict")=1 #the number of nginx processes has monotonously decreased over 10 minutes
monoinc(/host/key,(sec|#num)<:time shift>,<mode>)

Prüft, ob es einen monotonen Anstieg der Werte gegeben hat.
Unterstützte Werttypen: Integer.
Rückgabewert: 1 - wenn alle Elemente im Zeitraum kontinuierlich ansteigen; 0 - andernfalls.

Parameter:

  • Siehe allgemeine Parameter
  • mode (muss in doppelte Anführungszeichen gesetzt werden) - weak (jeder Wert ist größer als oder gleich dem vorherigen; Standard) oder strict (jeder Wert ist gestiegen)

Beispiele:

monoinc(/host/system.localtime,#3,"strict")=0 #die lokale Systemzeit ist nicht durchgängig angestiegen
monoinc(/host/vfs.dir.count[/mnt/data/logs],24h,"weak")=0 #Auslöser, wenn die Dateianzahl über 24 Stunden stagniert (es wird ein Anstieg erwartet)
nodata(/host/key,sec,<mode>)

Prüft, ob keine Daten empfangen wurden.
Unterstützte Wertetypen: Integer, Float, Character, Text, Log.
Rückgabewert: 1 - wenn während des definierten Zeitraums keine Daten empfangen wurden; andernfalls 0.

Parameter:

  • Siehe allgemeine Parameter
  • sec - der Zeitraum sollte nicht kürzer als 30 Sekunden sein, da der History-Syncer-Prozess diese Funktion nur alle 30 Sekunden berechnet; nodata(/host/key,0) ist nicht zulässig
  • mode - wenn auf strict gesetzt (in doppelten Anführungszeichen), ist diese Funktion unempfindlich gegenüber der Verfügbarkeit des Proxy (siehe Kommentare für Details)

Kommentare:

  • die von einem Proxy überwachten 'nodata'-Auslöser reagieren standardmäßig empfindlich auf die Verfügbarkeit des Proxy - wenn der Proxy nicht mehr verfügbar ist, werden die 'nodata'-Auslöser nicht sofort nach Wiederherstellung der Verbindung ausgelöst, sondern überspringen die Daten für den verzögerten Zeitraum. Beachten Sie, dass bei passiven Proxys die Unterdrückung aktiviert wird, wenn die Verbindung mehr als 15 Sekunden und nicht weniger als 2 Sekunden später wiederhergestellt wird. Bei aktiven Proxys wird die Unterdrückung aktiviert, wenn die Verbindung mehr als 15 Sekunden später wiederhergestellt wird. Um die Empfindlichkeit gegenüber der Verfügbarkeit des Proxy zu deaktivieren, verwenden Sie den dritten Parameter, z. B.: nodata(/host/key,5m,"strict"); in diesem Fall wird die Funktion ausgelöst, sobald der Auswertungszeitraum (fünf Minuten) ohne Daten verstrichen ist.
  • Diese Funktion zeigt einen Fehler an, wenn innerhalb des im 1. Parameter angegebenen Zeitraums:
    - keine Daten vorhanden sind und der Zabbix Server neu gestartet wurde
    - keine Daten vorhanden sind und eine Wartung abgeschlossen wurde
    - keine Daten vorhanden sind und der Datenpunkt hinzugefügt oder wieder aktiviert wurde.
  • Fehler werden in der Spalte Info in der Auslöser-Konfiguration angezeigt.
  • Diese Funktion funktioniert möglicherweise nicht korrekt, wenn es Zeitunterschiede zwischen Zabbix Server, Proxy und Agent gibt. Siehe auch: Anforderung an die Zeitsynchronisierung.

Beispiel:

nodata(/host/agent.ping,5m)=1 #Auslöser, wenn 5 Minuten lang keine Daten vom Zabbix Agent empfangen wurden
percentile(/host/key,(sec|#num)<:time shift>,percentage)

Das P-te Perzentil eines Zeitraums, wobei P (percentage) durch den dritten Parameter angegeben wird.
Unterstützte Wertetypen: Float, Integer.

Parameter:

  • Siehe allgemeine Parameter
  • percentage - eine Gleitkommazahl zwischen 0 und 100 (einschließlich) mit bis zu 4 Ziffern nach dem Dezimalpunkt

Beispiele:

percentile(/host/net.if.in[eth0,bytes],1h,95)>1000000 #95. Perzentil des Netzwerkeingangs (Bytes/Sek.) über 1 Stunde hat einen Schwellenwert überschritten (z. B. 1 MB/s)
percentile(/host/system.cpu.util,5m,95)>80 #95. Perzentil des CPU-Auslastungsprozentsatzes der User-Zeit ist über 80 gestiegen
percentile(/host/icmppingsec[192.168.0.2],15m,95)>0.15 #die meisten Latenzmessungen liegen unter 150 ms, aber der obere Randbereich (oberste 5 %) deutet auf regelmäßige Verzögerungen hin
percentile(/host/net.if.in[eth0,bytes],1h,50) #berechnet das 50. Perzentil (den Medianwert) des eingehenden Netzwerkverkehrs für eine Stunde; dies ergibt ein anderes Ergebnis als avg() (der Durchschnitt), da percentile Ausreißerwerte nicht berücksichtigt
(percentile(/host/net.if.in[eth0,bytes],1h,50)+percentile(/host/net.if.in[eth0,bytes],1h,51))/2 #berechnet den genauen Medianwert bei einer geraden Anzahl von Werten für eine Stunde
rate(/host/key,sec<:time shift>)

Der durchschnittliche Anstieg pro Sekunde in einem monoton steigenden Zähler innerhalb des definierten Zeitraums.
Unterstützte Wertetypen: Float, Integer.

Parameter:

Entspricht funktional 'rate' aus PromQL.

Beispiele:

rate(/host/key,30s) #wenn der monotone Anstieg über 30 Sekunden 20 beträgt, gibt diese Funktion 0,67 zurück.
rate(/host/net.if.in[eth0,bytes],5m)>500000 #die eingehende Schnittstellenverkehrsrate auf eth0 hat in den letzten 5 Minuten 500 KB/s überschritten
rate(/host/app.requests.count,1m)>100 #der Zähler für die Anzahl der Anfragen ist in der letzten Minute auf >100 Anfragen pro Sekunde gestiegen

Siehe alle unterstützten Funktionen.