4 Geschiedenisfuncties

Alle hier vermelde functies worden ondersteund in:

De functies worden vermeld zonder aanvullende informatie. Klik op de functie om de volledige details te zien.

Functie Omschrijving
change Het verschilbedrag tussen de vorige en de nieuwste waarde.
changecount Het aantal veranderingen tussen aangrenzende waarden binnen de gedefinieerde evaluatieperiode.
count Het aantal waarden binnen de gedefinieerde evaluatieperiode.
countunique Het aantal unieke waarden binnen de gedefinieerde evaluatieperiode.
find Zoek een overeenkomende waarde binnen de gedefinieerde evaluatieperiode.
first De eerste (oudste) waarde binnen de gedefinieerde evaluatieperiode.
fuzzytime Controleer hoeveel de passieve agenttijd verschilt van de Zabbix-server-/proxytijd.
last De meest recente waarde.
logeventid Controleer of het gebeurtenis-ID van het laatste logboekitem overeenkomt met een reguliere expressie.
logseverity De logboekernst van het laatste logboekitem.
logsource Controleer of de logboekbron van het laatste logboekitem overeenkomt met een reguliere expressie.
monodec Controleer of er een eentonige afname is geweest in waarden.
monoinc Controleer of er een eentonige toename is geweest in waarden.
nodata Controleer of er geen gegevens zijn ontvangen.
percentile Het P-de percentiel van een periode, waarbij P (percentage) wordt gespecificeerd door de derde parameter.
rate Het gemiddelde tarief per seconde van de toename in een monotoon stijgende teller binnen de gedefinieerde tijdsperiode.
Algemene parameters
  • /host/key is een algemene verplichte eerste parameter voor de functies verwijzend naar de geschiedenis van het hostitem
  • (sec|#num)<:time shift> is een gebruikelijke tweede parameter voor de functies die verwijzen naar de geschiedenis van het hostitem, waarbij:
    • sec - maximum evaluatie periode in seconden (tijd achtervoegsels kan worden gebruikt), of
    • #num - maximum evaluatie bereik in de laatste verzamelde waarden (indien voorafgegaan door een hekje)
    • tijdverschuiving (optioneel) maakt het mogelijk om het evaluatiepunt te verplaatsen terug in de tijd. Bekijk meer details](/manual/config/triggers/expression#time_shift) aan tijdverschuiving aangeven.

Functiegegevens

Enkele algemene opmerkingen over functieparameters:

  • Functieparameters worden gescheiden door een komma
  • Optionele functieparameters (of parameterdelen) worden aangegeven door < >
  • Functiespecifieke parameters worden beschreven bij elke functie
  • /host/sleutel en (sec|#num)<:tijdsverschuiving> parameters mogen nooit tussen aanhalingstekens staan
change(/host/sleutel)

Het verschilbedrag tussen de vorige en de nieuwste waarde.
Ondersteunde waardetypes: Float, Integer, String, Text, Log.
Voor strings retourneert het: 0 - waarden zijn gelijk; 1 - waarden verschillen.

Parameters: zie algemene parameters.

Opmerkingen:

  • Het numerieke verschil wordt berekend, zoals te zien is met deze binnenkomende voorbeeldwaarden ('vorige' en 'nieuwste' waarde = verschil):
    '1' en '5' = +4
    '3' en '1' = -2
    '0' en '-2,5' = -2,5
  • Zie ook: abs voor vergelijking.

Voorbeeld:

change(/host/sleutel)>10
changecount(/host/sleutel,(sec|#num)<:tijdsverschuiving>,<modus>)

Het aantal veranderingen tussen aangrenzende waarden binnen de gedefinieerde evaluatieperiode.
Ondersteunde waardetypes: Float, Integer, String, Text, Log.

Parameters:

  • Zie algemene parameters;
  • modus (moet tussen dubbele aanhalingstekens staan) - mogelijke waarden: all - tel alle veranderingen (standaard); dec - tel afnames; inc - tel toenames

Voor niet-numerieke waardetypes wordt de parameter modus genegeerd.

Voorbeelden:

changecount(/host/sleutel,1w) #het aantal waardeveranderingen voor de afgelopen week tot nu
       changecount(/host/sleutel,#10,"inc") #het aantal waardeverhogingen (ten opzichte van de aangrenzende waarde) onder de laatste 10 waarden
       changecount(/host/sleutel,24u,"dec") #het aantal waardeverlagingen (ten opzichte van de aangrenzende waarde) voor de afgelopen 24 uur tot nu
count(/host/sleutel,(sec|#num)<:tijdsverschuiving>,<operator>,<patroon>)

Het aantal waarden binnen de gedefinieerde evaluatieperiode.
Ondersteunde waardetypes: Float, Integer, String, Text, Log.

Parameters:

  • Zie algemene parameters;
  • operator (moet tussen dubbele aanhalingstekens staan). Ondersteunde operators:
    eq - gelijk (standaard voor integer, float)
    ne - niet gelijk
    gt - groter dan
    ge - groter dan of gelijk aan
    lt - kleiner dan
    le - kleiner dan of gelijk aan
    like (standaard voor string, text, log) - overeenkomstig als het patroon bevat (hoofdlettergevoelig)
    bitand - bitgewijs EN
    regexp - hoofdlettergevoelige overeenkomst met de reguliere expressie opgegeven in patroon
    iregexp - hoofdletterongevoelige overeenkomst met de reguliere expressie opgegeven in patroon
  • patroon - het vereiste patroon (tekenreeksargumenten moeten tussen dubbele aanhalingstekens staan).

Opmerkingen:

  • Float-items komen overeen met een precisie van 2,22e-16; als de database niet wordt geüpgraded, is de precisie 0,000001.
  • like wordt niet ondersteund als operator voor integerwaarden;
  • like en bitand worden niet ondersteund als operators voor floatwaarden;
  • Voor string-, tekst- en logwaarden worden alleen de operators eq, ne, like, regexp en iregexp ondersteund;
  • Met bitand als operator kan het vierde patroon-parameter worden gespecificeerd als twee getallen, gescheiden door '/': number_to_compare_with/mask. count() berekent "bitgewijs EN" van de waarde en het masker en vergelijkt het resultaat met number_to_compare_with. Als het resultaat van "bitgewijs EN" gelijk is aan number_to_compare_with, wordt de waarde geteld.
    Als number_to_compare_with en masker gelijk zijn, hoeft alleen het masker te worden gespecificeerd (zonder '/').
  • Met regexp of iregexp als operator kan het vierde patroon-parameter een gewone of globale (beginnend met '@') reguliere expressie zijn. In het geval van globale reguliere expressies wordt hoofdlettergevoeligheid overgenomen van de globale reguliere expressie-instellingen. Voor het doel van regexp-matching worden floatwaarden altijd weergegeven met 4 decimalen na '.'. Houd er ook rekening mee dat voor grote getallen het verschil in decimale (opgeslagen in de database) en binair (gebruikt door de Zabbix-server) representatie invloed kan hebben op de 4e decimale plaats.

Voorbeelden:

count(/host/sleutel,10m) #het aantal waarden voor de afgelopen 10 minuten tot nu
       count(/host/sleutel,10m,"like","fout") #het aantal waarden voor de afgelopen 10 minuten tot nu dat 'fout' bevat
       count(/host/sleutel,10m,,12) #het aantal waarden voor de afgelopen 10 minuten tot nu dat gelijk is aan '12'
       count(/host/sleutel,10m,"gt",12) #het aantal waarden voor de afgelopen 10 minuten tot nu dat groter is dan '12'
       count(/host/sleutel,#10,"gt",12) #het aantal waarden binnen de laatste 10 waarden tot nu dat groter is dan '12'
       count(/host/sleutel,10m:now-1d,"gt",12) #het aantal waarden tussen 24 uur en 10 minuten en 24 uur geleden vanaf nu dat groter was dan '12'
       count(/host/sleutel,10m,"bitand","6/7") #het aantal waarden voor de afgelopen 10 minuten tot nu met '110' (in binaire vorm) in de 3 minst significante bits
       count(/host/sleutel,10m:now-1d) #het aantal waarden tussen 24 uur en 10 minuten en 24 uur geleden vanaf nu
countunique(/host/sleutel,(sec|#num)<:tijdsverschuiving>,<operator>,<patroon>)

Het aantal unieke waarden binnen de gedefinieerde evaluatieperiode.
Ondersteunde waardetypes: Float, Integer, String, Text, Log.

Parameters:

  • Zie algemene parameters;
  • operator (moet tussen dubbele aanhalingstekens staan). Ondersteunde operators:
    eq - gelijk (standaard voor integer, float)
    ne - niet gelijk
    gt - groter dan
    ge - groter dan of gelijk aan
    lt - kleiner dan
    le - kleiner dan of gelijk aan
    like (standaard voor string, text, log) - overeenkomstig als het patroon bevat (hoofdlettergevoelig)
    bitand - bitgewijs EN
    regexp - hoofdlettergevoelige overeenkomst met de reguliere expressie opgegeven in patroon
    iregexp - hoofdletterongevoelige overeenkomst met de reguliere expressie opgegeven in patroon
  • patroon - het vereiste patroon (tekenreeksargumenten moeten tussen dubbele aanhalingstekens staan).

Opmerkingen:

  • Float-items komen overeen met een precisie van 2,22e-16; als de database niet wordt geüpgraded, is de precisie 0,000001.
  • like wordt niet ondersteund als operator voor integerwaarden;
  • like en bitand worden niet ondersteund als operators voor floatwaarden;
  • Voor string-, tekst- en logwaarden worden alleen de operators eq, ne, like, regexp en iregexp ondersteund;
  • Met bitand als operator kan het vierde patroon-parameter worden gespecificeerd als twee getallen, gescheiden door '/': number_to_compare_with/mask. countunique() berekent "bitgewijs EN" van de waarde en het masker en vergelijkt het resultaat met number_to_compare_with. Als het resultaat van "bitgewijs EN" gelijk is aan number_to_compare_with, wordt de waarde geteld.
    Als number_to_compare_with en masker gelijk zijn, hoeft alleen het masker te worden gespecificeerd (zonder '/').
  • Met regexp of iregexp als operator kan het vierde patroon-parameter een gewone of globale (beginnend met '@') reguliere expressie zijn. In het geval van globale reguliere expressies wordt hoofdlettergevoeligheid overgenomen van de globale reguliere expressie-instellingen. Voor het doel van regexp-matching worden floatwaarden altijd weergegeven met 4 decimalen na '.'. Houd er ook rekening mee dat voor grote getallen het verschil in decimale (opgeslagen in de database) en binair (gebruikt door de Zabbix-server) representatie invloed kan hebben op de 4e decimale plaats.

Voorbeelden:

countunique(/host/sleutel,10m) #het aantal unieke waarden voor de afgelopen 10 minuten tot nu
       countunique(/host/sleutel,10m,"like","fout") #het aantal unieke waarden voor de afgelopen 10 minuten tot nu dat 'fout' bevat
       countunique(/host/sleutel,10m,,12) #het aantal unieke waarden voor de afgelopen 10 minuten tot nu dat gelijk is aan '12'
       countunique(/host/sleutel,10m,"gt",12) #het aantal unieke waarden voor de afgelopen 10 minuten tot nu dat groter is dan '12'
       countunique(/host/sleutel,#10,"gt",12) #het aantal unieke waarden binnen de laatste 10 waarden tot nu dat groter is dan '12'
       countunique(/host/sleutel,10m:now-1d,"gt",12) #
find(/host/sleutel,(sec|#num)<:tijdsverschuiving>,<operator>,<patroon>)

Een overeenkomende waarde zoeken binnen de gedefinieerde evaluatieperiode.
Ondersteunde waardetypes: Float, Integer, String, Text, Log.
Retourneert: 1 - gevonden; 0 - anders.

Parameters:

  • Zie algemene parameters;
  • sec of #num (optioneel) - standaardwaarde is de meest recente waarde indien niet gespecificeerd
  • operator (moet tussen dubbele aanhalingstekens staan). Ondersteunde operators:
    eq - gelijk (standaard voor integer, float)
    ne - niet gelijk
    gt - groter dan
    ge - groter dan of gelijk aan
    lt - kleiner dan
    le - kleiner dan of gelijk aan
    like (standaard voor string, text, log) - overeenkomstig als de tekenreeks in patroon voorkomt (hoofdlettergevoelig)
    bitand - bitgewijs EN
    regexp - hoofdlettergevoelige overeenkomst met de reguliere expressie opgegeven in patroon
    iregexp - hoofdletterongevoelige overeenkomst met de reguliere expressie opgegeven in patroon
  • patroon - het vereiste patroon (tekenreeksargumenten moeten tussen dubbele aanhalingstekens staan); Perl Compatible Regular Expression (PCRE) reguliere expressie als operator regexp, iregexp.

Opmerkingen:

  • Als meer dan één waarde wordt verwerkt, wordt '1' geretourneerd als er ten minste één overeenkomende waarde is;
  • like wordt niet ondersteund als operator voor integerwaarden;
  • like en bitand worden niet ondersteund als operators voor floatwaarden;
  • Voor string-, tekst- en logwaarden worden alleen de operators eq, ne, like, regexp en iregexp ondersteund;
  • Met regexp of iregexp als operator kan het vierde patroon-parameter een gewone of globale (beginnend met '@') reguliere expressie zijn. In het geval van globale reguliere expressies wordt hoofdlettergevoeligheid overgenomen van de instellingen voor de globale reguliere expressie.

Voorbeeld:

find(/host/sleutel,10m,"like","fout") #zoek een waarde die 'fout' bevat binnen de afgelopen 10 minuten tot nu
first(/host/sleutel,sec<:tijdsverschuiving>)

De eerste (de oudste) waarde binnen de gedefinieerde evaluatieperiode.
Ondersteunde waardetypes: Float, Integer, String, Text, Log.

Parameters:

Zie ook last().

Voorbeeld:

first(/host/sleutel,1u) #haal de oudste waarde op binnen het afgelopen uur tot nu
fuzzytime(/host/sleutel,sec)

Controleer hoeveel de passieve agenttijd afwijkt van de Zabbix-server/-proxytijd.
Ondersteunde waardetypes: Float, Integer.
Retourneert: 1 - verschil tussen de tijd van het passieve item (als tijdstempel) en de tijdstempel van de Zabbix-server/-proxy (de klok van waardeverzameling) is kleiner dan of gelijk aan T seconden; 0 - anders.

Parameters:

Opmerkingen:

  • Gewoonlijk gebruikt met het item 'system.localtime' om te controleren of de lokale tijd synchroniseert met de lokale tijd van de Zabbix-server. Opmerking dat 'system.localtime' geconfigureerd moet zijn als een passieve controle.
  • Kan ook worden gebruikt met de sleutel vfs.file.time[/pad/bestand,modify] om te controleren of het bestand al lange tijd niet is bijgewerkt;
  • Deze functie wordt niet aanbevolen voor gebruik in complexe triggerevaluaties (met meerdere betrokken items), omdat dit onverwachte resultaten kan veroorzaken (het tijdsverschil wordt gemeten met de meest recente metriek), bijvoorbeeld in fuzzytime(/Host/system.localtime,60s)=0 of last(/Host/trap)<>0.

Voorbeeld:

fuzzytime(/host/sleutel,60s)=0 #detecteer een probleem als het tijdsverschil meer dan 60 seconden is

last(/host/sleutel,<#num<:tijdsverschuiving>>)

De meest recente waarde.
Ondersteunde waardetypes: Float, Integer, String, Text, Log.

Parameters:

Opmerkingen:

  • Let op dat een tijdperiode met een hash-tag (#N) hier anders werkt dan bij veel andere functies. Bijvoorbeeld: last() is altijd gelijk aan last(#1); last(#3) - de derde meest recente waarde (niet de drie laatste waarden);
  • Zabbix garandeert niet de exacte volgorde van waarden als er meer dan twee waarden binnen één seconde in de geschiedenis bestaan;
  • Zie ook first().

Voorbeeld:

last(/host/sleutel) #haal de laatste waarde op
       last(/host/sleutel,#2) #haal de vorige waarde op
       last(/host/sleutel,#1) <> last(/host/sleutel,#2) #de laatste en vorige waarden zijn verschillend
logeventid(/host/sleutel,<#num<:tijdsverschuiving>>,<patroon>)

Controleer of het gebeurtenis-ID van het laatste logboekitem overeenkomt met een reguliere expressie.
Ondersteunde waardetypes: Log.
Retourneert: 0 - komt niet overeen; 1 - komt overeen.

Parameters:

  • Zie algemene parameters;
  • #num (optioneel) - de N-de meest recente waarde;
  • patroon (optioneel) - de reguliere expressie die het vereiste patroon beschrijft, Perl Compatible Regular Expression (PCRE)-stijl (string-argumenten moeten tussen dubbele aanhalingstekens staan).
logseverity(/host/sleutel,<#num<:tijdsverschuiving>>)

Logniveau van het laatste logboekitem.
Ondersteunde waardetypes: Log.
Retourneert: 0 - standaardniveau; N - niveau (integer, nuttig voor Windows-gebeurtenislogboeken: 1 - Informatie, 2 - Waarschuwing, 4 - Fout, 7 - Controle mislukt, 8 - Controle geslaagd, 9 - Kritiek, 10 - Uitgebreid).

Parameters:

Zabbix haalt het logniveau uit het Informatie-veld van het Windows-gebeurtenislogboek.

logsource(/host/sleutel,<#num<:tijdsverschuiving>>,<patroon>)

Controleren of de logbron van het laatste logboekitem overeenkomt met een reguliere expressie.
Ondersteunde waardetypes: Log.
Retourneert: 0 - komt niet overeen; 1 - komt overeen.

Parameters:

Normaal gesproken gebruikt voor Windows-gebeurtenislogboeken.

Voorbeeld:

logsource(/host/sleutel,,"VMware Server")
monodec(/host/sleutel,(sec|#num)<:tijdsverschuiving>,<modus>)

Controleren of er sprake is geweest van een eenvoudige afname van waarden.
Ondersteunde waardetypes: Integer.
Retourneert: 1 - als alle elementen in de tijdsperiode continu afnemen; 0 - anders.

Parameters:

  • Zie algemene parameters;
  • modus (moet dubbel geciteerd worden) - zwak (elke waarde is kleiner of gelijk aan de vorige; standaard) of strikt (elke waarde is afgenomen).

Voorbeeld:

monodec(/Host1/system.swap.size[all,free],60s) + monodec(/Host2/system.swap.size[all,free],60s) + monodec(/Host3/system.swap.size[all,free],60s) #bereken hoeveel hosts er een afname is geweest in vrije swapgrootte
monoinc(/host/sleutel,(sec|#num)<:tijdsverschuiving>,<modus>)

Controleren of er sprake is geweest van een eenvoudige toename van waarden.
Ondersteunde waardetypes: Integer.
Retourneert: 1 - als alle elementen in de tijdsperiode continu toenemen; 0 - anders.

Parameters:

  • Zie algemene parameters;
  • modus (moet dubbel geciteerd worden) - zwak (elke waarde is groter of gelijk aan de vorige; standaard) of strikt (elke waarde is toegenomen).

Voorbeeld:

monoinc(/Host1/system.localtime,#3,"strict")=0 #controleren of de lokale systeemtijd consequent is toegenomen
nodata(/host/sleutel,sec,<modus>)

Controleren op het ontbreken van ontvangen gegevens.
Ondersteunde waardetypes: Integer, Float, Karakter, Tekst, Log.
Retourneert: 1 - als er gedurende de gedefinieerde tijdsperiode geen gegevens zijn ontvangen; 0 - anders.

Parameters:

  • Zie algemene parameters;
  • sec - de periode mag niet minder dan 30 seconden zijn, omdat het proces van de history syncer deze functie slechts elke 30 seconden berekent; nodata(/host/sleutel,0) is niet toegestaan.
  • modus - als dit wordt ingesteld op strikt (dubbel geciteerd), zal deze functie ongevoelig zijn voor de beschikbaarheid van een proxy (zie opmerkingen voor details).

Opmerkingen:

  • de 'nodata'-triggers die worden gecontroleerd door een proxy zijn standaard gevoelig voor de beschikbaarheid van de proxy - als de proxy niet beschikbaar is, zullen de 'nodata'-triggers niet onmiddellijk worden geactiveerd na een herstelde verbinding, maar zullen ze de gegevens voor de vertraagde periode overslaan. Merk op dat voor passieve proxies onderdrukking wordt geactiveerd als de verbinding meer dan 15 seconden wordt hersteld en niet minder dan 2 & ProxyUpdateFrequency seconden later. Voor actieve proxies wordt onderdrukking geactiveerd als de verbinding meer dan 15 seconden later wordt hersteld. Om de gevoeligheid voor de beschikbaarheid van de proxy uit te schakelen, gebruikt u de derde parameter, bijvoorbeeld: nodata(/host/sleutel,5m,"strict"); in dit geval wordt de functie geactiveerd zodra de evaluatieperiode (vijf minuten) zonder gegevens is verstreken.
  • Deze functie geeft een foutmelding als er binnen de periode van de 1e parameter:
    - geen gegevens zijn en de Zabbix-server is opnieuw opgestart
    - geen gegevens zijn en het onderhoud is voltooid
    - geen gegevens zijn en het item is toegevoegd of opnieuw is ingeschakeld
  • Fouten worden weergegeven in de Info kolom in trigger configuratie;
  • Deze functie werkt mogelijk niet goed als er tijdsverschillen zijn tussen de Zabbix-server, proxy en agent. Zie ook: Vereiste voor tijdssynchronisatie.
percentiel(/host/sleutel,(sec|#num)<:tijd verschuiving>,percentage)

Het P-de percentiel van een periode, waarbij P (percentage) wordt gespecificeerd door de derde parameter.
Ondersteunde waardetypes: Float, Integer.

Parameters:

  • Zie algemene parameters;
  • percentage - een zwevend kommagetal tussen 0 en 100 (inclusief) met maximaal 4 cijfers achter de komma.
snelheid(/host/sleutel,sec<:tijd verschuiving>)

Het gemiddelde aantal per seconde van de toename in een monotoon toenemende teller binnen de gedefinieerde tijdsperiode.
Ondersteunde waardetypes: Float, Integer.

Parameters:

Functioneel komt overeen met 'snelheid' van PromQL.

Voorbeeld:

snelheid(/host/sleutel,30s) #als de monotone toename over 30 seconden 20 is, zal deze functie 0,67 retourneren.

Zie alle ondersteunde functies.