4 Funcions d'historial

Totes les funcions llistades aquí són admeses a:

Les funcions es llisten sense informació addicional. Feu clic a la funció per veure'n tots els detalls.

Funció Descripció
change Quantitat de diferència entre el valor anterior i el darrer.
changecount Nombre de canvis entre valors adjacents dins del període d'avaluació definit.
count Nombre de valors dins del període d'avaluació definit.
countunique Nombre de valors únics dins del període d'avaluació definit.
find Cerca una coincidència de valor dins del període d'avaluació definit.
first El primer valor (el més antic) dins del període d'avaluació definit.
fuzzytime Comproveu quant difereix el temps de l'agent passiu del temps del servidor/proxy Zabbix.
últim Vvalor més recent.
logeventid Comproveu si l'ID d'esdeveniment de la darrera entrada de registre coincideix amb una expressió regular.
logseverity Gravetat del registre de la darrera entrada del registre.
logsource Comproveu si la font de registre de la darrera entrada de registre coincideix amb una expressió regular.
monodec Comprova si hi ha hagut una disminució monòtona dels valors.
monoinc Comprova si hi ha hagut un augment monòton dels valors.
nodata Comprova si no s'ha rebut cap dada.
percentil Percentil P d'un període, on P (percentatge) s'especifica pel tercer paràmetre.
rate Taxa mitjana per segon de l'augment d'un comptador creixent monòtonament dins del període de temps definit.
Paràmetres comuns
  • /host/key és un paràmetre comú obligatori per les funcions sobre l'històric de l'element d'equip
  • (sec|#num)<:time shift> és un segon paràmetre habitual per funcions referents a l'històric de l'element d'equip, on:
    • sec - període d'avaluació màxim en segons (es poden emprar els sufixes), o
    • #num - període d'avaluació màxim en nombre de valors recollits (si van precedits per el símbol de la graella)
    • canvi horari (facultatiu) permet canviar el punt d'avaluació en el temps. Veieu més detalls sobre la especificació del canvi horari.

Detalls de la funció

Algunes notes generals sobre paràmetres de funció:

  • Els paràmetres de funció són separats per una coma
  • Els paràmetres de funció opcionals (o parts de paràmetres) s'indiquen amb < >
  • Els paràmetres específics de la funció es descriuen amb cada funció
  • Els paràmetres /host/key i (sec|#num)<:time shift> no s'han de citar mai entre cometes
change(/host/key)

Import de la diferència entre el valor anterior i el darrer.
Tipus de valors admesos: Flotant, Enter, Cadena, Text, Log.
Per a les cadenes retorna: 0 - els valors són iguals; 1 - els valors són diferents.

Paràmetres: veieu paràmetres comuns.

Comentaris:

  • Es calcularà la diferència numèrica, tal com es veu amb aquests valors d'exemple entrants (valor 'anterior' i 'darrer' = diferència):
    '1' i '5' = '+4'
    '3' i ' 1' = -2
    '0' i '-2,5' = -2,5
  • Veieu també: abs per a una comparació.

Exemples:

change(/host/system.uptime)<0 #system uptime change ha estat negatiu des del darrer valor (indicant un reinici)
change(/host/system.cpu.load[all,avg1])>2 #CPU load (per un minut) ha saltat més de 2 des del darrer valor
change(/host/vfs.fs.size[/,free])<-1G #free disk space ha caigut en més d'1 Go entre comprovacions
changecount(/host/key,(sec|#num)<:time shift>,<mode>)

Nombre de canvis entre valors adjacents durant el període d'avaluació definit.
Tipus de valors admesos: Flotant, Enter, Cadena, Text, Log.

Paràmetres:

  • Veieu paràmetres comuns;
  • mode (ha d'estar entre cometes dobles) - valors possibles: all - comptar tots els canvis (per defecte); dec - el recompte disminueix; inc - el recompte augmenta

Per als tipus de valors no numèrics, el paràmetre mode s'ignora.

Exemples:

changecount(/host/icmping,10m)>5 #ing ha canviat més de 5 vegades en 10 minuts
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5 #estat operatiu d'eth0 ha canviat més de 5 vegades en una hora
changecount(/host/proc.num[httpd],15m)>10 #el nombre de processos httpd ha canviat més de 10 vegades en 15 minuts
changecount(/host/key,1w) #nombre de canvis de valors durant la darrera setmana
changecount(/host/key,#10,"inc") #nombre d'augments de valors (en relació amb el valor adjacent) entre els darrers 10 valors
changecount(/host/key,24h,"dec") #el nombre de disminució de valors (en relació amb el valor adjacent) durant les darreres 24 hores
count(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

El nombre de valors dins del període d'avaluació definit.
Tipus de valors admesos: Flotant, Enter, Cadena, Text, Registre.

Paràmetres:

  • Veieu paràmetres comuns;
  • operador (ha d'ésser entre cometes). Operadors admesos:
    eq - igual (per defecte per a enter, flotant)
    ne - no igual
    gt - major
    ge - major o igual
    lt - menys
    le - menys o igual
    like (per defecte per a cadena, text, registre) - coincideix si conté un patró (distingeix entre majúscules i minúscules)
    bitand - bit a bit I< br>regexp - concordança que distingeix entre majúscules i minúscules de l'expressió regular donada a "patró"
    iregexp - concordança sense distinció entre majúscules i minúscules de l'expressió regular donada a "patró"
  • patró- el patró requerit (els arguments de cadena han d'ésser entre cometes dobles).

Comentaris:

  • Els elements flotants coincideixen amb la precisió de 2.22e-16;
  • like no és compatible com a operador per a valors enters;
  • like i bitand no s'admeten com a operadors per a valors flotants;
  • Per als valors de cadena, text i registre només s'admeten els operadors eq, ne, like, regexp i iregexp;
  • Amb bitand com a operador, el quart paràmetre patró es pot especificar com a dos números, separats per '/': number_to_compare_with/mask. count() calcula "AND bit a bit" a partir del valor i la mask i compara el resultat amb number_to_compare_with. Si el resultat de "AND bit a bit" és igual a number_to_compare_with/mask, es compta el valor.
    Si nnumber_to_compare_with i mask són iguals, només cal especificar la mask (sense '/').
  • Amb regexp o iregexp com a operador, el quart paràmetre pattern pot ser una expressió regular ordinària o global (començant per '@'). En el cas de les expressions regulars globals, la distinció entre majúscules i minúscules s'hereta de la configuració global de les expressions regulars. Per a la concordança d'expressions regulars, els valors flotants sempre es representaran amb 4 dígits decimals després de ".". Tingueu en compte també que, per a nombres grans, la diferència de representació decimal (emmagatzemat a la base de dades) i binària (emprada pel servidor Zabbix) pot afectar el quart dígit decimal.

Exemples:

    count(/host/icmpping,30m,,"0")>5 #el ping ha fallat més de 5 cops els darrers 30 minuts
    count(/host/key,10m,"like","error") #el nombre de valors dels darrers 10 minuts fins ara que contenen "error"
    count(/host/key,10m,,12) #el nombre de valors dels darrers 10 minuts fins ara que és igual a '12'
    count(/host/key,10m,"gt",12) #el nombre de valors dels darrers 10 minuts fins ara que són superiors a '12'
    count(/host/key,#10,"gt",12) #el nombre de valors dels darrers 10 valors fins ara que són superiors a '12'
    count(/host/key,10m:now-1d,"gt",12) #el nombre de valors entre 24 hores i 10 minuts i fa 24 hores a partir d'ara que van ser superiors a '12'
    count(/host/key,10m,"bitand","6/7") #el nombre de valors dels darrers 10 minuts fins ara amb '110' (en binari) als 3 bits menys significatius
    count(/host/key,10m:now-1d) #el nombre de valors entre 24 hores i 10 minuts i fa 24 hores a partir d'ara
countunique(/host/key,(sec|#num)<:time shift>,<operador>,<pattern>)

El nombre de valors únics dins del període d'avaluació definit.
Tipus de valors admesos: Flotant, Enter, Cadena, Text, Registre.

Paràmetres:

  • Vegeu paràmetres comuns;
  • operador (ha d'estar entre cometes). "Operadors" admesos:
    eq - igual (per defecte per a enter, flotant)
    ne - no igual
    gt - major
    ge - major o igual
    lt - menys
    le - menys o igual
    like (per defecte per a cadena, text, registre) - coincideix si conté un patró (distingeix entre majúscules i minúscules)
    bitand - bit a bit I< br>regexp - concordança que distingeix entre majúscules i minúscules de l'expressió regular donada a patró
    iregexp - concordança sense distinció entre majúscules i minúscules de l'expressió regular donada a patró
  • patró - el patró requerit (els arguments de cadena han d'estar entre cometes dobles).

Comentaris:

  • Els elements flotants coincideixen amb la precisió de 2.22e-16;
  • like no és compatible com a operador per a valors enters;
  • like i bitand no s'admeten com a operadors per a valors flotants;
  • Per als valors de cadena, text i registre només s'admeten els operadors eq, ne, like, regexp i iregexp;
  • Amb bitand com a operador, el quart paràmetre patró es pot especificar com a dos números, separats per '/': number_to_compare_with/mask. countunique() calcula "AND bit a bit" a partir del valor i la mask i compara el resultat amb number_to_compare_with. Si el resultat de "AND bit a bit" és igual a number_to_compare_with, es compta el valor.
    Si number_to_compare_with/mask i mask són iguals, només cal especificar la mask (sense '/').
  • Amb regexp o iregexp com a operador, el quart paràmetre pattern pot ser una expressió regular ordinària o global (començant per '@'). En el cas de les expressions regulars globals, la distinció entre majúscules i minúscules s'hereta de la configuració global de les expressions regulars. Per a la concordança d'expressions regulars, els valors flotants sempre es representaran amb 4 dígits decimals després de ".". Tingueu en compte també que, per a nombres grans, la diferència de representació decimal (emmagatzemada a la base de dades) i binària (emprada pel servidor Zabbix) pot afectar el quart dígit decimal.

Exemples:

    countunique(/host/key,10m) #el nombre de valors únics durant els darrers 10 minuts fins ara
    countunique(/host/key,10m,"like","error") #el nombre de valors únics dels darrers 10 minuts fins ara que contenen "error"
    countunique(/host/key,10m,,12) #el nombre de valors únics dels darrers 10 minuts fins ara que és igual a '12'
    countunique(/host/key,10m,"gt",12) #el nombre de valors únics dels darrers 10 minuts fins ara que són superiors a '12'
    countunique(/host/key,#10,"gt",12) #el nombre de valors únics dels darrers 10 valors fins ara que són superiors a '12'
    countunique(/host/key,10m:now-1d,"gt",12) #el nombre de valors únics entre 24 hores i 10 minuts i fa 24 hores a partir d'ara que van ser superiors a '12'
    countunique(/host/key,10m,"bitand","6/7") #el nombre de valors únics dels darrers 10 minuts fins ara amb '110' (en binari) als 3 bits menys significatius
    countunique(/host/key,10m:now-1d) #el nombre de valors únics entre 24 hores i 10 minuts i fa 24 hores a partir d'ara
find(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>)

Trobeu una coincidència de valor dins del període d'avaluació definit.
Tipus de valors admesos: Flotant, Enter, Cadena, Text, Registre.
Devolucions: 1 - trobat; 0 - en cas contrari.

Paràmetres:

  • Veieu paràmetres comuns;
  • seg o #num (opcional) - per defecte el valor més recent si no s'especifica
  • operador (ha d'estar entre cometes). "Operadors" admesos:
    eq - igual (per defecte per a enter, flotant)
    ne - no igual
    gt - major
    ge - major o igual
    lt - less
    le - less or equal
    like (per defecte per a cadena, text, registre) - coincideix si conté la cadena donada a "patró" (distingeix entre majúscules i minúscules)
    bitand - AND per bits
    regexp - concordança que distingeix entre majúscules i minúscules de l'expressió regular donada a "patró"
    iregexp - concordança sense distinció entre majúscules i minúscules de l'expressió regular donada a "patró"
  • patró - el patró requerit (els arguments de cadena han d'estar entre cometes); Expressió regular compatible amb Perl (PCRE) expressió regular si operador és regexp, iregexp.

Comentaris:

  • Si es processa més d'un valor, es retorna '1' si hi ha almenys un valor coincident;
  • like no és compatible com a operador per a valors enters;
  • like i bitand no s'admeten com a operadors per a valors flotants;
  • Per als valors de cadena, text i registre només s'admeten els operadors eq, ne, like, regexp i iregexp;
  • Amb regexp o iregexp com a operador, el quart paràmetre pattern pot ser una expressió regular ordinària o global (començant per '@'). En el cas de les expressions regulars globals, la distinció entre majúscules i minúscules s'hereta de la configuració global de les expressions regulars.

Exemple:

find(/host/key,10m,"like","error") #trobar un valor que contingui 'error' durant els darrers 10 minuts fins ara
find(/host/agent.version,"like","beta")=1 #Zabbix té versió beta, s'ha d'actualitzar
find(/host/log[/var/log/nginx/access.log],,"regexp"," 500 ")=1 #s'ha trobat l'error del servidor web intern
first(/host/key,sec<:time shift>)

El primer valor (el més antic) dins del període d'avaluació definit.
Tipus de valors admesos: Flotant, Enter, Cadena, Text, Log.

Paràmetres:

Veieu també last().

Exemple:

     first(/host/key,1h) #recuperar el valor més antic de la darrera hora
fuzzytime(/host/key,sec)

Comproveu quant difereix el temps de l'agent passiu del temps del servidor/proxy Zabbix.
Tipus de valors admesos: Flotant, Enter.
Retorna: 1 - la diferència entre el valor de l'element passiu (com a marca de temps) i la marca de temps del servidor/proxy Zabbix (el rellotge de la recollida de valors) és menor o igual a sec segons; 0 - en cas contrari.

Paràmetres:

Comentaris:

  • Normalment s'empra amb l'element 'system.localtime' per comprovar que l'hora local és sincronitzada amb l'hora local del servidor Zabbix. Tingueu en compte que "system.localtime" s'ha de configurar com a comprovació passiva.
  • Es pot emprar també amb la clau vfs.file.time[/path/file,modify] per comprovar que el fitxer no ha rebut actualitzacions durant molt de temps;
  • No es recomana emprar aquesta funció en expressions trigger complexes (amb diversos elements implicats), perquè pot provocar resultats inesperats (la diferència de temps es mesurarà amb la mètrica més recent), com ara fuzzytime(/Host/system.localtime,60s)=0 o last(/Host/trap)<>0.

Exemples:

fuzzytime(/host/system.localtime,5m)=0 #l'hora local del client difereix del servidor/proxy Zabbixen més de 5 minuts
fuzzytime(/host/system.localtime,5m)=0 i nodata(/host/system.localtime,10m)=0 #l'hora local del client difereix del servidor/proxy Zabbixen més de 5 minuts (mentre s'assegura que l'element no ha deixat d'informar de dades)
last(/host/key,<#num<:time shift>>)

El valor més recent.
Tipus de valors admesos: Flotant, Enter, Cadena, Text, Log.

Paràmetres:

Comentaris:

  • Tingueu en compte que un període de temps etiquetat amb hash (#N) funciona de manera diferent aquí que amb moltes altres funcions. Per exemple: last(/host/key) sempre és igual a last(/host/key,#1); last(/host/key,#3) - el tercer valor més recent (no els tres valors més recents);
  • Zabbix no garanteix l'ordre exacte dels valors si existeixen més de dos valors en un segon a l'històric;
  • Veieu també first().

Exemples:

     last(/host/key) #recupera el darrer valor
     last(/host/key, #2) #recupera el valor anterior
     last(/host/key,#1) <> last(/host/key,#2) #el darrer valor i l'anterior difereixen
logeventid(/host/key,<#num<:time shift>>,<pattern>)

Comproveu si l'ID d'esdeveniment de la darrera entrada del registre coincideix amb una expressió regular.
Tipus de valors admesos: Log.
Retorna: 0 - no coincideix; 1 - partits.

Paràmetres:

Exemples:

``default logeventid(/host/eventlog[Security],"4625")=1 #entrada de registre amb ID que coincideix amb "4625" (autenticació fallida) trobat logeventid(/host/eventlog[Sistema],"6008|41")=1 #entrada de registre amb ID que coincideix amb "6008" o "41" trobat


[comment]: # ({/3f78986e-ff5dcd5e})

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

Gravetat de la darrera entrada del registre.<br>
Tipus de valors admesos: *Log*.<br>
Retorna: 0 - gravetat predeterminada; N - gravetat (nombre enter, útil per als registres d'esdeveniments de Windows: 1 - Informació, 2 - Avís, 4 - Error, 7 - Auditoria d'error, 8 - Auditoria d'èxit, 9 - Crític, 10 - Detallat).

Paràmetres:

- Veieu [paràmetres comuns](#common-parameters);<br>
- **#num** (opcional) - el valor enèssim més recent.

Zabbix pren la gravetat del registre del camp **Informació** del registre d'esdeveniments de Windows.

Exemples:

```default
logseverity(/host/log[/var/log/syslog],10m)>3 #una entrada de registre amb la gravetat per sobre de "3"
logseverity(/host/eventlog[System],10m)=4 #una entrada de registre amb la gravetat igual a "Error"
logsource(/host/key,<#num<:time shift>>,<pattern>)

Comproveu si la font del registre de la darrera entrada del registre coincideix amb una expressió regular.
Tipus de valors admesos: Log.
Retorna: 0 - no coincideix; 1 - partits.

Paràmetres:

Normalment s'utilitza per als registres d'esdeveniments de Windows.

Exemples:

``per defecte logsource(/host/eventlog[Aplicació],,"MSSQLSERVER")=1 #a entrada de registre amb la coincidència de la font "MSSQLSERVER" logsource(/host/eventlog[System],,"Gestor de control de serveis")=1 #a entrada de registre amb la coincidència d'origen "Gestor de control de servei" logsource(/host/eventlog[System],,"Service Control Manager")=1 i logeventid(/host/eventlog[System],,"7031")=1 #a entrada de registre amb la coincidència d'origen "Gestor de control de servei" i l'identificador d'esdeveniment que coincideix amb "7031"


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

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

##### monodec(/host/key,(sec|#num)<:time shift>,<mode>) {#monodec}

Comproveu si hi ha hagut una disminució monòtona dels valors.<br>
Tipus de valors admesos: *Enter*.<br>
Retorna: 1 - si tots els elements del període de temps disminueixen contínuament; 0 - en cas contrari.

Paràmetres:

- Veieu [paràmetres comuns](#common-parameters);<br>
- **mode** (ha d'estar entre cometes dobles) - *permissiu* (cada valor és més petit o igual que l'anterior; per defecte) o *estricte* (cada valor ha disminuït).

Exemple:

```default
monodec(/Host1/system.swap.size[all,free],60s) + monodec(/Host2/system.swap.size[all,free],60s) + monodec(/Host3/system.swap.size[all,free],60s) #calculeu a quants equips hi ha hagut una disminució de la mida de l'intercanvi lliure
monodec(/host/proc.num[nginx],10m,"strict")=1 #el nombre de processos nginx ha disminuït monòtonament durant 10 minuts
monoinc(/host/key,(sec|#num)<:time shift>,<mode>)

Comproveu si hi ha hagut un augment monòton dels valors.
Tipus de valors admesos: Enter.
Retorna: 1 - si tots els elements del període de temps augmenten contínuament; 0 - en cas contrari.

Paràmetres:

  • Veieu paràmetres comuns;
  • mode (ha de ser entre cometes) - permissiu (cada valor és més gran o igual que l'anterior; per defecte) o estricte (cada valor ha augmentat).

Exemples:

monoinc(/Host1/system.localtime,#3,"strict")=0 #comproveu si l'hora local del sistema ha anat augmentant constantment
monoinc(/host/vfs.dir.count[/mnt/data/logs],24h,"weak")=0 #activar si el recompte d'arxius s'ha estancat més de 24 hores (s'espera que creixi)
nodata(/host/key,sec,<mode>)

Comprova si no s'ha rebut cap dada.
Tipus de valors admesos: Enter, Flotant, Caràcter, Text, Registre.
Retorna: 1 - si no s'han rebut dades durant el període de temps definit; 0 - cas contrari.

Paràmetres:

  • Veieu paràmetres comuns;
  • seg - el període no ha de ser inferior a 30 segons perquè el procés de sincronització de l'historial calcula aquesta funció només cada 30 segons; nodata(/host/key,0) no és permès.
  • mode - si s'estableix en estricte (entre cometes), aquesta funció serà insensible a la disponibilitat del proxy (veieu els comentaris per a més detalls).

Comentaris:

  • els triggers 'nodata' monitorats pel proxy són, de manera predeterminada, sensibles a la disponibilitat del proxy; si el proxy no és disponible, els triggers "nodata" no s'activaran immediatament després d'una connexió restaurada, sinó que saltaran les dades durant el període de retard. Tingueu en compte que la supressió dels proxys passius s'activa si la connexió es restableix més de 15 segons i no menys de 2 segons més tard. Per als proxys actius, l'esborrat s'activa si la connexió es restableix més de 15 segons després. Per desactivar la sensibilitat a la disponibilitat del proxy, empreu el tercer paràmetre, per exemple: `nodata(/host/key,5m,"strict"); en aquest cas, la funció s'activarà tan aviat com hagi passat el període d'avaluació (cinc minuts) sense dades.
  • Aquesta funció mostrarà un error si, dins del període del 1r paràmetre:
    - no hi ha dades i el servidor Zabbix s'ha reiniciat
    - no hi ha dades i s'ha completat el manteniment
    - no hi ha dades i l'element s'ha afegit o tornat a habilitar
  • Els errors es veuen a la columna Informació al trigger configuració;
  • És possible que aquesta funció no rutlli correctament si hi ha diferències de temps entre el servidor Zabbix, el proxy i l'agent. Veieu també: Requisit de sincronització de l'hora.

Exemples:

nodata(/host/agent.ping,5m)=1 #trigger si no s'ha rebut cap dada de l'agent de Zabbix durant 5 minuts
percentile(/host/key,(sec|#num)<:time shift>,percentage)

Percentil P d'un període, on P (percentatge) s'especifica pel tercer paràmetre.
Tipus de valors admesos: Flotant, Enter.

Paràmetres:

  • Veieu paràmetres comuns;
  • percentatge - un nombre de coma flotant entre 0 i 100 (inclosos) amb fins a 4 dígits després del punt decimal.

Exemples:

percentil(/host/net.if.in[eth0,bytes],1h,95)>1000000 #95th percentile network input (bytes/sec) més d'1 hora ha anat més enllà d'un llindar (per exemple, 1 MB/s)
percentil(/host/system.cpu.util,5m,95)>80 #95th percentil d'utilització de la CPU percentatge de temps d'usuari ha passat per sobre de 80
percentil(/host/icmpingsec[192.168.0.2],15m,95)>0.15 #la majoria de les mesures de latència estan per sota de 150 ms però la cua de gamma alta (part superior 5%) implica retard regular
percentil(/host/net.if.in[eth0,bytes],1h,50) #calcular el percentil 50 (el valor mitjà) del trànsit de xarxa entrant durant una hora; això produeix un resultat diferent d'avg() (la mitjana), ja que el percentil no considera valors atípics
(percentile(/host/net.if.in[eth0,bytes],1h,50)+percentil(/host/net.if.in[eth0,bytes],1h,51))/2 #calcula el valor mitjà precís amb un nombre parell de valors durant una hora
rate(/host/key,sec<:time shift>)

Taxa mitjana per segon de l'augment d'un comptador que augmenta monòtonament durant el període de temps definit.
Tipus de valors admesos: Flotant, Enter.

Paràmetres:

Funcionalment correspon a 'rate' de PromQL.

Exemples:

rate(/host/key,30s) #si l'augment monotònic de més de 30 segons és de 20, aquesta funció retorna 0,67.
rate(/host/net.if.in[eth0,bytes],5m)>500000 #la taxa de trànsit d'interfície entrant a eth0 ha superat els 500 KB/s en els darrers 5 minuts
rate(/host/app.requests.count,1m)>100 #el comptador de recompte de sol·licituds ha augmentat a >100 peticions per segon en el darrer minut

Veieu totes les funcions admeses.