[comment]: # attributes: notoc

[comment]: # ({11b7940f-7da5ea1c})
# 4 Historische Funktionen

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

-   [Ausdrucks-Trigger](/manual/config/triggers/expression)
-   [Berechnete Datenpunkte](/manual/config/items/itemtypes/calculated)
-   [Ausdrucksmakros](/manual/config/macros/expression_macros)

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

|Function|Description|
|--|--------|
|[change](#change)|Die Differenz zwischen dem vorherigen und dem neuesten Wert.|
|[changecount](#changecount)|Die Anzahl der Änderungen zwischen benachbarten Werten innerhalb des definierten Auswertungszeitraums.|
|[count](#count)|Die Anzahl der Werte innerhalb des definierten Auswertungszeitraums.|
|[countunique](#countunique)|Die Anzahl der eindeutigen Werte innerhalb des definierten Auswertungszeitraums.|
|[find](#find)|Sucht nach einer passenden Wertübereinstimmung innerhalb des definierten Auswertungszeitraums.|
|[first](#first)|Der erste (älteste) Wert innerhalb des definierten Auswertungszeitraums.|
|[firstclock](#firstclock)|Der Zeitstempel des ersten (ältesten) Werts innerhalb des definierten Auswertungszeitraums.|
|[fuzzytime](#fuzzytime)|Prüft, wie stark die Zeit des passiven Agent von der Zeit des Zabbix-Servers/Proxy abweicht.|
|[last](#last)|Der aktuellste Wert.|
|[lastclock](#lastclock)|Der Zeitstempel des N-ten aktuellsten Werts innerhalb des definierten Auswertungszeitraums.|
|[logeventid](#logeventid)|Prüft, ob die Ereignis-ID des letzten Logeintrags mit einem regulären Ausdruck übereinstimmt.|
|[logseverity](#logseverity)|Der Schweregrad des letzten Logeintrags.|
|[logsource](#logsource)|Prüft, ob die Logquelle des letzten Logeintrags mit einem regulären Ausdruck übereinstimmt.|
|[logtimestamp](#logtimestamp)|Der Zeitstempel der Logmeldung des N-ten aktuellsten Log-Datenpunktwerts.|
|[monodec](#monodec)|Prüft, ob ein monotoner Werteabfall vorliegt.|
|[monoinc](#monoinc)|Prüft, ob ein monotoner Werteanstieg vorliegt.|
|[nodata](#nodata)|Prüft, ob keine Daten empfangen wurden.|
|[percentile](#percentile)|Das P-te Perzentil eines Zeitraums, wobei P (Prozent) durch den dritten Parameter angegeben wird.|
|[rate](#rate)|Die durchschnittliche Änderungsrate pro Sekunde eines monoton ansteigenden Zählers innerhalb des definierten Zeitraums.|

[comment]: # ({/11b7940f-7da5ea1c})

[comment]: # ({2310631d-4d343eb8})
##### Allgemeine Parameter

-   `/host/key` ist ein gemeinsamer obligatorischer erster Parameter für die Funktionen, die den Verlauf von Host-Datenpunkten referenzieren
-   `(sec|#num)<:time shift>` ist ein gemeinsamer zweiter Parameter für die Funktionen, die den Verlauf von Host-Datenpunkten referenzieren, wobei:
    -   **sec** - maximale [Auswertungsperiode](/manual/config/triggers#evaluation-period) in Sekunden (Zeit-[Suffixe](/manual/appendix/suffixes) können verwendet werden), oder
    -   **\#num** - maximaler [Auswertungsbereich](/manual/config/triggers#evaluation-period) in den zuletzt erfassten Werten (wenn ein Hash-Zeichen vorangestellt ist)
    -   **time shift** (optional) ermöglicht es, den Auswertungspunkt in der Zeit zurückzuverschieben.
    Siehe [weitere Details](/manual/config/triggers/expression#time-shift) zur Angabe von time shift.

[comment]: # ({/2310631d-4d343eb8})

[comment]: # ({aa4e1bf6-8f3a0028})
### 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

[comment]: # ({/aa4e1bf6-8f3a0028})

[comment]: # ({1f93c729-4afc9a02})
##### change(/host/key) {#change}

Die Höhe der Differenz zwischen dem vorherigen und dem neuesten Wert.<br>
Unterstützte Werttypen: *Float*, *Integer*, *String*, *Text*, *Log*.<br>
Für Zeichenfolgen wird zurückgegeben: 0 - Werte sind gleich; 1 - Werte unterscheiden sich.

Parameter: siehe [allgemeine Parameter](#common-parameters).

Kommentare:

-   Die numerische Differenz wird berechnet, wie in den folgenden Beispielwerten für eingehende Daten zu sehen ist ('previous' und 'latest' value = Differenz):<br>'1' und '5' = `+4`<br>'3' und '1' = `-2`<br>'0' und '-2.5' = `-2.5`.<br>
-   Siehe auch: [abs](/manual/appendix/functions/math#abs) zum Vergleich.

Beispiele:

```default
change(/host/system.uptime)<0 #die Änderung der Systemlaufzeit ist seit dem letzten Wert negativ gewesen (was einen Neustart anzeigt)
change(/host/system.cpu.load[all,avg1])>2 #die CPU-Auslastung (für eine Minute) ist seit dem letzten Wert um mehr als 2 gestiegen
change(/host/vfs.fs.size[/,free])<-1G #der freie Festplattenspeicher ist zwischen den Prüfungen um mehr als 1 GB gesunken
```

[comment]: # ({/1f93c729-4afc9a02})

[comment]: # ({56cecc56-57458a90})
##### changecount(/host/key,(sec|#num)<:time shift>,<mode>) {#changecount}

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

Parameter: 

-   Siehe [allgemeine Parameter](#common-parameters)<br>
-   **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

Für nicht numerische Werttypen wird der Parameter *mode* ignoriert.

Beispiele:

```default
changecount(/host/icmpping,10m)>5 #Ping-Status hat sich mehr als 5 Mal in 10 Minuten geändert
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5 #der Betriebszustand von eth0 hat sich in einer Stunde mehr als 5 Mal geändert
changecount(/host/proc.num[httpd],15m)>10 #die Anzahl der httpd-Prozesse hat sich in 15 Minuten mehr als 10 Mal geändert
changecount(/host/key,#10,"inc") #die Anzahl der Wertsteigerungen (im Vergleich zum benachbarten Wert) unter den letzten 10 Werten
changecount(/host/key,24h,"dec") #die Anzahl der Wertabnahmen (im Vergleich zum benachbarten Wert) in den letzten 24 Stunden bis jetzt
```

[comment]: # ({/56cecc56-57458a90})

[comment]: # ({1f9dc9af-f9ce5dd9})
##### count(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>) {#count}

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

Parameter: 

-   Siehe [allgemeine Parameter](#common-parameters)<br>
-   **operator** (muss in doppelte Anführungszeichen gesetzt werden)
Unterstützte `operators`:<br>*eq* - gleich (Standard für integer, float)<br>*ne* - ungleich<br>*gt* - größer als<br>*ge* - größer oder gleich<br>*lt* - kleiner als<br>*le* - kleiner oder gleich<br>*like* (Standard für string, text, log) - trifft zu, wenn das Muster enthalten ist (Groß-/Kleinschreibung wird beachtet)<br>*bitand* - bitweises AND<br>*regexp* - Übereinstimmung unter Beachtung der Groß-/Kleinschreibung mit dem in `pattern` angegebenen regulären Ausdruck<br>*iregexp* - Übereinstimmung ohne Beachtung der Groß-/Kleinschreibung mit dem in `pattern` angegebenen regulären Ausdruck<br>
-   **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.<br>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](/manual/regular_expressions#global-regular-expressions) (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:

```default
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
```

[comment]: # ({/1f9dc9af-f9ce5dd9})

[comment]: # ({ab6b4d74-bf8dc20c})
##### countunique(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>) {#countunique}

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

Parameter: 

-   Siehe [allgemeine Parameter](#common-parameters)<br>
-   **operator** (muss in doppelte Anführungszeichen gesetzt werden).
Unterstützte `operators`:<br>*eq* - gleich (Standard für integer, float)<br>*ne* - ungleich<br>*gt* - größer als<br>*ge* - größer oder gleich<br>*lt* - kleiner als<br>*le* - kleiner oder gleich<br>*like* (Standard für string, text, log) - stimmt überein, wenn das Muster enthalten ist (Groß-/Kleinschreibung wird beachtet)<br>*bitand* - bitweises UND<br>*regexp* - Groß-/Kleinschreibung beachtende Übereinstimmung mit dem in `pattern` angegebenen regulären Ausdruck<br>*iregexp* - Groß-/Kleinschreibung ignorierende Übereinstimmung mit dem in `pattern` angegebenen regulären Ausdruck<br>
-   **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.<br>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](/manual/regular_expressions#global-regular-expressions) (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:

```default
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
```

[comment]: # ({/ab6b4d74-bf8dc20c})

[comment]: # ({9bb9907e-148d7d16})
##### find(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>) {#find}

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

Parameter: 

-   Siehe [gemeinsame Parameter](#common-parameters)<br>
-   **sec** oder **#num** (optional) - standardmäßig der letzte Wert, wenn nicht angegeben
-   **operator** (muss in doppelte Anführungszeichen gesetzt werden)
Unterstützte `operators`:<br>*eq* - gleich (Standard für integer, float)<br>*ne* - ungleich<br>*gt* - größer als<br>*ge* - größer oder gleich<br>*lt* - kleiner als<br>*le* - kleiner oder gleich<br>*like* (Standard für string, text, log) - stimmt überein, wenn die in `pattern` angegebene Zeichenkette enthalten ist (Groß-/Kleinschreibung wird beachtet)<br>*bitand* - bitweises AND<br>*regexp* - Übereinstimmung unter Beachtung der Groß-/Kleinschreibung mit dem in `pattern` angegebenen regulären Ausdruck<br>*iregexp* - Übereinstimmung ohne Beachtung der Groß-/Kleinschreibung mit dem in `pattern` angegebenen regulären Ausdruck<br>
-   **pattern** - das erforderliche Muster (String-Argumente müssen in doppelte Anführungszeichen gesetzt werden); regulärer Ausdruck nach [Perl Compatible Regular Expression](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (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](/manual/regular_expressions#global-regular-expressions) (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:

```default
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
```

[comment]: # ({/9bb9907e-148d7d16})

[comment]: # ({86057069-0ae5f587})
##### first(/host/key,sec<:time shift>) {#first}

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

Parameter: 

-   Siehe [allgemeine Parameter](#common-parameters)

Siehe auch [last()](#last).

Beispiel:

```default
first(/host/key,1h) #retrieve the oldest value within the last hour until now
```

[comment]: # ({/86057069-0ae5f587})

[comment]: # ({f7e55e49-77c121f4})
##### firstclock(/host/key,sec<:time shift>) {#firstclock}

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

Parameter: 

-   Siehe [gemeinsame Parameter](#common-parameters).

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

Siehe auch [lastclock()](#lastclock).

Beispiele:

```default
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
```

[comment]: # ({/f7e55e49-77c121f4})

[comment]: # ({96c1f032-1c3609f8})
##### fuzzytime(/host/key,sec) {#fuzzytime}

Prüft, wie stark sich die Zeit des passiven Agent von der Zeit des Zabbix Server/Proxy unterscheidet.<br>
Unterstützte Werttypen: *Float*, *Integer*.<br>
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: 

-   Siehe [allgemeine Parameter](#common-parameters).

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](/manual/appendix/items/activepassive#passive-checks) 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:

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

[comment]: # ({/96c1f032-1c3609f8})

[comment]: # ({a56ae5b5-8059d345})
##### last(/host/key,<#num<:time shift>>) {#last}

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

Parameter: 

-   Siehe [allgemeine Parameter](#common-parameters)<br>
-   **#num** (optional) - der n-te zuletzt empfangene Wert

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()](#first).

Beispiele:

```default
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
```

[comment]: # ({/a56ae5b5-8059d345})

[comment]: # ({37d8627c-e2c2d8a2})
##### lastclock(/host/key,<#num<:time shift>>) {#lastclock}

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

Parameter: 

-   Siehe [allgemeine Parameter](#common-parameters);<br>
-   **#num** (optional) - der N-tjüngste Wert.

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()](#firstclock).

Beispiele:

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

[comment]: # ({/37d8627c-e2c2d8a2})

[comment]: # ({5cecd78d-ff5dcd5e})
##### logeventid(/host/key,<#num<:time shift>>,<pattern>) {#logeventid}

Prüft, ob die Ereignis-ID des letzten Logeintrags mit einem regulären Ausdruck übereinstimmt.<br>
Unterstützte Werttypen: *Log*.<br>
Rückgabewert: 0 - stimmt nicht überein; 1 - stimmt überein.

Parameter: 

-   Siehe [allgemeine Parameter](#common-parameters)<br>
-   **#num** (optional) - der N-te zuletzt empfangene Wert<br>
-   **pattern** (optional) - der reguläre Ausdruck, der das erforderliche Muster beschreibt, im Stil von [Perl Compatible Regular Expression](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE) (Zeichenfolgenargumente müssen in doppelte Anführungszeichen gesetzt werden)

Beispiele:

```default
logeventid(/host/eventlog[Security],,"^4625$")=1 #ein Logeintrag mit der ID "4625" (fehlgeschlagene Authentifizierung) wurde gefunden
logeventid(/host/eventlog[System],,"^(6008|41)$")=1 #ein Logeintrag mit der ID "6008" oder "41" wurde gefunden
```

[comment]: # ({/5cecd78d-ff5dcd5e})

[comment]: # ({d3497d35-5053b990})
##### logseverity(/host/key,<#num<:time shift>>) {#logseverity}

Protokollschwere des letzten Protokolleintrags.<br>
Unterstützte Werttypen: *Log*.<br>
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: 

-   Siehe [allgemeine Parameter](#common-parameters)<br>
-   **#num** (optional) - der N-tjüngste Wert

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

Beispiele:

```default
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
```

[comment]: # ({/d3497d35-5053b990})

[comment]: # ({b33d7f55-a9148f5c})
##### logsource(/host/key,<#num<:time shift>>,<pattern>) {#logsource}

Prüft, ob die Logquelle des letzten Logeintrags mit einem regulären Ausdruck übereinstimmt.<br>
Unterstützte Werttypen: *Log*.<br>
Rückgabewert: 0 - stimmt nicht überein; 1 - stimmt überein.

Parameter: 

-   Siehe [allgemeine Parameter](#common-parameters)<br>
-   **#num** (optional) - der N-te zuletzt empfangene Wert<br>
-   **pattern** (optional) - der reguläre Ausdruck, der das erforderliche Muster beschreibt, im Stil von [Perl Compatible Regular Expression](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE) (Zeichenkettenargumente müssen in doppelte Anführungszeichen gesetzt werden)

Wird normalerweise für Windows-Ereignisprotokolle verwendet.

Beispiele:

```default
logsource(/host/eventlog[Application],,"MSSQLSERVER")=1 #ein Logeintrag mit einer Quelle, die mit "MSSQLSERVER" übereinstimmt, wurde gefunden
logsource(/host/eventlog[System],,"Service Control Manager")=1 #ein Logeintrag 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 Logeintrag mit einer Quelle, die mit "Service Control Manager" übereinstimmt, und einer Ereignis-ID, die mit "7031" übereinstimmt, wurde gefunden
```

[comment]: # ({/b33d7f55-a9148f5c})

[comment]: # ({64641457-49eac3d8})
##### logtimestamp(/host/key,<#num<:time shift>>) {#logtimestamp}

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

Parameter: 

-   Siehe [allgemeine Parameter](#common-parameters);<br>
-   **#num** (optional) - der N-tjüngste Wert.

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:

```default
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
```

[comment]: # ({/64641457-49eac3d8})

[comment]: # ({2b7441d8-6a63b5c8})
##### monodec(/host/key,(sec|#num)<:time shift>,<mode>) {#monodec}

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

Parameter: 

-   Siehe [allgemeine Parameter](#common-parameters)<br>
-   **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:

```default
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
```

[comment]: # ({/2b7441d8-6a63b5c8})

[comment]: # ({09e06757-755c1821})
##### monoinc(/host/key,(sec|#num)<:time shift>,<mode>) {#monoinc}

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

Parameter: 

-   Siehe [allgemeine Parameter](#common-parameters)<br>
-   **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:

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

[comment]: # ({/09e06757-755c1821})

[comment]: # ({ce0040c4-178e3950})
##### nodata(/host/key,sec,<mode>) {#nodata}

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

Parameter: 

-   Siehe [allgemeine Parameter](#common-parameters)<br>
-   **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.<br>
-   Diese Funktion zeigt einen Fehler an, wenn innerhalb des im 1. Parameter angegebenen Zeitraums:<br>- keine Daten vorhanden sind und der Zabbix Server neu gestartet wurde<br>- keine Daten vorhanden sind und eine Wartung abgeschlossen wurde<br>- keine Daten vorhanden sind und der Datenpunkt hinzugefügt oder wieder aktiviert wurde.<br>
-   Fehler werden in der Spalte *Info* in der Auslöser-[Konfiguration](/manual/web_interface/frontend_sections/data_collection/hosts/triggers) angezeigt.<br>
-   Diese Funktion funktioniert möglicherweise nicht korrekt, wenn es Zeitunterschiede zwischen Zabbix Server, Proxy und Agent gibt.
Siehe auch: [Anforderung an die Zeitsynchronisierung](/manual/installation/requirements#time-synchronization).

Beispiel:

```default
nodata(/host/agent.ping,5m)=1 #Auslöser, wenn 5 Minuten lang keine Daten vom Zabbix Agent empfangen wurden
```

[comment]: # ({/ce0040c4-178e3950})

[comment]: # ({8fe0ae58-e8041c00})
##### percentile(/host/key,(sec|#num)<:time shift>,percentage) {#percentile}

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

Parameter: 

-   Siehe [allgemeine Parameter](#common-parameters)<br>
-   **percentage** - eine Gleitkommazahl zwischen 0 und 100 (einschließlich) mit bis zu 4 Ziffern nach dem Dezimalpunkt

Beispiele:

```default
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
```

[comment]: # ({/8fe0ae58-e8041c00})

[comment]: # ({0e6c5369-3b1de601})
##### rate(/host/key,sec<:time shift>) {#rate}

Die durchschnittliche Zuwachsrate pro Sekunde eines monoton ansteigenden Zählers innerhalb des definierten Zeitraums.<br>
Unterstützte Werttypen: *Float*, *Integer*.

Parameter: 

-   Siehe [allgemeine Parameter](#common-parameters)

Entspricht funktional der PromQL-Funktion '[rate](https://prometheus.io/docs/prometheus/latest/querying/functions/#rate)'.

Beispiele:

```default
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 Anfragenanzahl ist in der letzten Minute auf mehr als 100 Anfragen pro Sekunde gestiegen
```

[comment]: # ({/0e6c5369-3b1de601})

[comment]: # ({ba59dd3a-ce01d749})
Siehe [alle unterstützten Funktionen](/manual/appendix/functions).

[comment]: # ({/ba59dd3a-ce01d749})
