This is a translation of the original English documentation page. Help us make it better.

2 Voorverwerking van itemwaarde

Overzicht

Voorverwerking maakt het mogelijk om transformatieregels te definiëren voor de ontvangen itemwaarden. Eén of meerdere transformaties zijn mogelijk voordat ze worden opgeslagen in de database.

Transformaties worden uitgevoerd in de volgorde waarin ze zijn gedefinieerd. Voorverwerking wordt uitgevoerd door de Zabbix-server of proxy (indien items worden bewaakt door een proxy).

Merk op dat alle waarden die aan de voorverwerking worden doorgegeven, van het string-type zijn. De conversie naar het gewenste waarde-type (zoals gedefinieerd in de itemconfiguratie) wordt uitgevoerd aan het einde van de voorverwerkingspijplijn; conversies kunnen echter ook plaatsvinden als dat nodig is voor de betreffende voorverwerkingsstap. Zie voorverwerkingsdetails voor meer technische informatie.

Zie ook: Gebruiksvoorbeelden

Configuratie

Voorverwerkingsregels worden gedefinieerd in het tabblad Voorverwerking van het onderdeel configuratie formulier.

Een onderdeel wordt niet ondersteund als een van de voorverwerkingsstappen mislukt, tenzij Aangepaste actie bij fout foutafhandeling (beschikbaar voor ondersteunde transformaties) is geconfigureerd om de waarde te negeren of om een opgegeven waarde in te stellen.

Voor logonderdelen zal logmetadata (zonder waarde) altijd de onderdeelstatus resetten naar "niet ondersteund" en het onderdeel weer ondersteund maken, zelfs als de initiële fout optrad na ontvangst van een logwaarde van de agent.

Gebruikersmacro's en gebruikersmacro's met context worden ondersteund in voorverwerkingsparameters van onderdeelwaarden, inclusief JavaScript-code.

De context wordt genegeerd wanneer een macro wordt vervangen door zijn waarde. De macrowaarde wordt ongewijzigd in de code ingevoegd, het is niet mogelijk om extra ontsnappingstekens toe te voegen voordat de waarde in de JavaScript-code wordt geplaatst. Houd er rekening mee dat dit in sommige gevallen JavaScript-fouten kan veroorzaken.

Type
Transformatie Omschrijving
Tekst
Reguliere expressie Zoek de waarde die overeenkomt met de reguliere expressie <pattern> en vervang de waarde door <output>. De reguliere expressie ondersteunt het extraheren van maximaal 10 vastgelegde groepen met de \N-sequentie. Als de invoerwaarde niet overeenkomt, wordt het onderdeel niet ondersteund.
Parameters:
pattern - reguliere expressie
output - uitvoeropmaak sjabloon. Een \N (waar N=1…9) escape sequentie wordt vervangen door de Ne gerelateerde overeenkomende groep. Een \0 escape sequentie wordt vervangen door de overeenkomende tekst.
Raadpleeg het gedeelte reguliere expressies voor enkele bestaande voorbeelden.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
Vervangen Zoek de zoekreeks en vervang deze door een andere (of niets). Alle voorkomens van de zoekreeks worden vervangen.
Parameters:
zoekreeks - de te vinden en te vervangen reeks, hoofdlettergevoelig (verplicht)
vervanging - de reeks waarmee de zoekreeks wordt vervangen. De vervangende reeks kan ook leeg zijn, waardoor de zoekreeks effectief wordt verwijderd wanneer deze wordt gevonden.
Het is mogelijk om ontsnappingssequenties te gebruiken om te zoeken naar of line breaks, carriage return, tabs en spaties te vervangen "\n \r \t \s"; de backslash kan worden ontsnapt als "\\" en ontsnappingssequenties kunnen worden ontsnapt als "\\n". Het ontsnappen van regelafbrekingen, carriage return en tabs wordt automatisch uitgevoerd tijdens low-level discovery.
Bijsnijden Verwijder opgegeven tekens van het begin en het einde van de waarde.
Rechts bijsnijden Verwijder opgegeven tekens van het einde van de waarde.
Links bijsnijden Verwijder opgegeven tekens van het begin van de waarde.
Gestructureerde gegevens
XML XPath Waarde of fragment uit XML-gegevens extraheren met behulp van XPath-functionaliteit.
Om deze optie te laten werken, moet de Zabbix-server worden gecompileerd met libxml-ondersteuning.
Voorbeelden:
number(/document/item/value) zal 10 extraheren uit <document><item><value>10</value></item></document>
number(/document/item/@attribute) zal 10 extraheren uit <document><item attribute="10"></item></document>
/document/item zal <item><value>10</value></item> extraheren uit <document><item><value>10</value></item></document>
Merk op dat namespaces niet worden ondersteund.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
JSON-pad Waarde of fragment uit JSON-gegevens extraheren met behulp van JSON-pad functionaliteit.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
CSV naar JSON Converteer gegevens van een CSV-bestand naar JSON-indeling.
Zie voor meer informatie: CSV naar JSON-voorverwerking.
XML naar JSON Converteer gegevens in XML-indeling naar JSON.
Zie voor meer informatie: Serialisatieregels.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
SNMP
SNMP-waarde doorlopen Waarde extraheren op basis van de opgegeven OID/MIB-naam en opmaakopties toepassen:
Onveranderd - hex-tekenreeks retourneren als ongeëscapete hex-tekenreeks;
UTF-8 van hex-TEKENREEKS - hex-tekenreeks converteren naar UTF-8-tekenreeks;
MAC van hex-TEKENREEKS - hex-tekenreeks valideren als MAC-adres en een juiste MAC-adresreeks retourneren (waarbij spaties worden vervangen door ':');
Integer van BITS - de eerste 8 bytes van een bitreeks, uitgedrukt als een reeks hex-tekenreeksen (bijv. "1A 2B 3C 4D"), converteren naar een 64-bits ondertekend geheel getal. In bitreeksen langer dan 8 bytes worden opeenvolgende bytes genegeerd.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
SNMP-waarden naar JSON Converteer SNMP-waarden naar JSON. Specificeer een veldnaam in de JSON en het overeenkomstige SNMP OID-pad. Veldwaarden worden ingevuld door waarden in het opgegeven SNMP OID-pad.
Je kunt deze voorverwerkingsstap gebruiken voor SNMP OID-ontdekking.
Vergelijkbare opmaakopties voor waarden als in de SNMP-waarde doorlopen stap zijn beschikbaar.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
Rekenkunde
Aangepaste vermenigvuldiger Vermenigvuldig de waarde met het opgegeven gehele getal of het zwevende kommagetal.
Gebruik deze optie om waarden die zijn ontvangen in KB, MBps, enzovoort om te zetten naar B, Bps. Anders kan Zabbix de voorvoegsels (K, M, G, enzovoort) niet correct instellen.
Opmerking: als het itemtype van de informatie Numeriek (ongesigneerd) is, worden binnenkomende waarden met een fractioneel deel afgerond (dat wil zeggen, '0.9' wordt '0') voordat de aangepaste vermenigvuldiger wordt toegepast.
Ondersteund: wetenschappelijke notatie, bijvoorbeeld, 1e+70 (sinds versie 2.2); gebruikersmacro's en LLD-macro's (sinds versie 4.0); tekenreeksen die macro's bevatten, bijvoorbeeld, {#MACRO}e+10, {$MACRO1}e+{$MACRO2} (sinds versie 5.2.3)
De macro's moeten worden opgelost tot een geheel getal of een zwevend kommagetal.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
Wijziging
Eenvoudige wijziging Bereken het verschil tussen de huidige en vorige waarde.
Berekend als waarde-vorige_waarde, waarbij
waarde - huidige waarde; vorige_waarde - eerder ontvangen waarde
Deze instelling kan nuttig zijn om een voortdurend groeiende waarde te meten. Als de huidige waarde kleiner is dan de vorige waarde, verwerpt Zabbix dat verschil (sla niets op) en wacht op een andere waarde.
Per item is slechts één wijzigingsbewerking toegestaan.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
Wijziging per seconde Bereken de snelheid van de waardeverandering (verschil tussen de huidige en vorige waarde) per seconde.
Berekend als (waarde-vorige_waarde)/(tijd-vorige_tijd), waarbij
waarde - huidige waarde; vorige_waarde - eerder ontvangen waarde; tijd - huidige tijdstempel; vorige_tijd - tijdstempel van de vorige waarde.
Deze instelling is bijzonder nuttig om de snelheid per seconde te verkrijgen voor een voortdurend groeiende waarde. Als de huidige waarde kleiner is dan de vorige waarde, verwerpt Zabbix dat verschil (sla niets op) en wacht op een andere waarde. Dit helpt om correct te werken met bijvoorbeeld het omwikkelen (overloop) van 32-bits SNMP-tellers.
Opmerking: Aangezien deze berekening zwevendekomma-getallen kan produceren, wordt aanbevolen om het 'Type informatie' in te stellen op Numeriek (float), zelfs als de binnenkomende ruwe waarden gehele getallen zijn. Dit is vooral relevant voor kleine getallen waarbij het decimale deel belangrijk is. Als de zwevendekomma-waarden groot zijn en de 'float'-veldlengte kunnen overschrijden, waardoor de gehele waarde verloren kan gaan, wordt eigenlijk voorgesteld om Numeriek (ongesigneerd) te gebruiken en dus alleen het decimale deel af te snijden.
Per item is slechts één wijzigingsbewerking toegestaan.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
Cijferstelsels
Booleaans naar decimaal Converteer de waarde van booleaanse indeling naar decimaal. De tekstuele weergave wordt vertaald naar 0 of 1. Zo wordt 'WAAR' opgeslagen als 1 en 'ONWAAR' als 0. Alle waarden worden op een hoofdletterongevoelige manier overeenkomstig gemaakt. Momenteel herkende waarden zijn, voor:
WAAR - waar, w, ja, j, aan, op, actief, ingeschakeld, beschikbaar, oké, master
ONWAAR - onwaar, o, nee, n, uit, af, inactief, uitgeschakeld, niet beschikbaar, err, slave
Bovendien wordt elke niet-nul numerieke waarde beschouwd als WAAR en nul wordt beschouwd als ONWAAR.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
Octaal naar decimaal Converteer de waarde van octale indeling naar decimaal.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
Hexadecimaal naar decimaal Converteer de waarde van hexadecimale indeling naar decimaal.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
Aangepaste scripts
JavaScript Voer JavaScript-code in in het blok dat verschijnt wanneer je op het parameter veld klikt of op een potloodpictogram klikt.
Merk op dat de beschikbare lengte van JavaScript afhankelijk is van de gebruikte database.
Voor meer informatie, zie: Voorverwerking met JavaScript.
Validatie
Binnen bereik Definieer een bereik waarin een waarde moet liggen door minimale/maximale waarden (inclusief) op te geven.
Numerieke waarden worden geaccepteerd (inclusief elk aantal cijfers, een optioneel decimaal deel en een optioneel exponentieel deel, negatieve waarden). Gebruikersmacro's en macro's voor lage-niveau-ontdekking kunnen worden gebruikt. De minimale waarde moet kleiner zijn dan de maximale waarde.
Er moet ten minste één waarde zijn opgegeven.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
Komt overeen met reguliere expressie Specificeer een reguliere expressie waaraan een waarde moet voldoen.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
Komt niet overeen met reguliere expressie Specificeer een reguliere expressie waaraan een waarde niet mag voldoen.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
Controleer op fout in JSON Controleer op een foutbericht op applicatieniveau dat zich op JSONPath bevindt. Stop met verwerken als dit is gelukt en het bericht niet leeg is; anders ga door met de waarde die vóór deze voorverwerkingsstap stond. Houd er rekening mee dat deze fouten van externe services aan de gebruiker worden gemeld zoals ze zijn, zonder toevoeging van informatie over de voorverwerkingsstap.
Er wordt geen fout gemeld in geval van mislukte verwerking van ongeldige JSON.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
Controleer op fout in XML Controleer op een foutbericht op applicatieniveau dat zich op XPath bevindt. Stop met verwerken als dit is gelukt en het bericht niet leeg is; anders ga door met de waarde die vóór deze voorverwerkingsstap stond. Houd er rekening mee dat deze fouten van externe services aan de gebruiker worden gemeld zoals ze zijn, zonder toevoeging van informatie over de voorverwerkingsstap.
Er wordt geen fout gemeld in geval van mislukte verwerking van ongeldige XML.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
Controleer op fout met behulp van een reguliere expressie Controleer op een foutbericht op applicatieniveau met behulp van een reguliere expressie. Stop met verwerken als dit is gelukt en het bericht niet leeg is; anders ga door met de waarde die vóór deze voorverwerkingsstap stond. Houd er rekening mee dat deze fouten van externe services aan de gebruiker worden gemeld zoals ze zijn, zonder toevoeging van informatie over de voorverwerkingsstap.
Parameters:
pattern - reguliere expressie
output - uitvoerformatteringssjabloon. Een \N (waar N=1…9) escape-sequentie wordt vervangen door de N-de overeenkomende groep. Een \0 escape-sequentie wordt vervangen door de overeenkomende tekst.
Als je het selectievakje Aangepaste actie bij fout aanvinkt, is het mogelijk om aangepaste foutafhandelingsopties te selecteren: ofwel om de waarde te negeren, een gespecificeerde waarde in te stellen, of een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het onderdeel niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd.
Controleer op niet-ondersteunde waarde Controleer of er een fout optrad bij het ophalen van de itemwaarde. Normaal gesproken zou dit ertoe leiden dat het item niet-ondersteund wordt, maar je kunt dit gedrag aanpassen door de Aangepaste actie bij fout foutafhandelingsopties op te geven: om de waarde te negeren, om een gespecificeerde waarde in te stellen (die ook in triggers kan worden gebruikt), of om een gespecificeerd foutbericht in te stellen. In het geval van een mislukte voorverwerkingsstap wordt het item niet ongeschikt gemaakt als de optie om de waarde te negeren of een gespecificeerde waarde in te stellen is geselecteerd. Houd er rekening mee dat voor deze voorverwerkingsstap het selectievakje Aangepaste actie bij fout grijs wordt weergegeven en altijd is gemarkeerd.
Deze stap wordt altijd als eerste uitgevoerd en wordt boven alle andere stappen geplaatst nadat wijzigingen aan het item zijn opgeslagen. Het kan slechts één keer worden gebruikt.
Ondersteund sinds 5.2.0.
Throttling
Ongewijzigde waarden negeren Negeren van een waarde als deze niet is gewijzigd.
Als een waarde wordt genegeerd, wordt deze niet in de database opgeslagen en heeft de Zabbix-server geen kennis van het feit dat deze waarde is ontvangen. Er worden geen triggerexpressies geëvalueerd, als gevolg hiervan worden er geen problemen voor bijbehorende triggers gemaakt/opgelost. Functies werken alleen op basis van gegevens die daadwerkelijk in de database zijn opgeslagen. Aangezien trends worden opgebouwd op basis van gegevens in de database, zal er geen trendgegevens zijn voor dat uur als er geen waarde is opgeslagen gedurende een uur.
Slechts één throttling-optie kan worden opgegeven voor een item.
Houd er rekening mee dat in het geval van een zeer klein verschil (minder dan 0,000001) tussen de waarden van de items die worden bewaakt door Zabbix-proxy, het mogelijk is dat negeren niet correct wordt uitgevoerd door de proxy, en de waarden worden opgeslagen in de geschiedenis als dezelfde waarde, tenzij de Zabbix-serverdatabase wordt geüpgraded.
Ongewijzigde waarden negeren met interval Negeren van een waarde als deze niet is gewijzigd binnen de gedefinieerde tijdsperiode (in seconden).
Positieve gehele getallen worden ondersteund om de seconden op te geven (minimum - 1 seconde). Tijdsachtervoegsels kunnen worden gebruikt in dit veld (bijv. 30s, 1m, 2u, 1d). Gebruikersmacro's en macro's voor lage-niveau-ontdekking kunnen worden gebruikt in dit veld.
Als een waarde wordt genegeerd, wordt deze niet in de database opgeslagen en heeft de Zabbix-server geen kennis van het feit dat deze waarde is ontvangen. Er worden geen triggerexpressies geëvalueerd, als gevolg hiervan worden er geen problemen voor bijbehorende triggers gemaakt/opgelost. Functies werken alleen op basis van gegevens die daadwerkelijk in de database zijn opgeslagen. Aangezien trends worden opgebouwd op basis van gegevens in de database, zal er geen trendgegevens zijn voor dat uur als er geen waarde is opgeslagen gedurende een uur.
Slechts één throttling-optie kan worden opgegeven voor een item.
Houd er rekening mee dat in het geval van een zeer klein verschil (minder dan 0,000001) tussen de waarden van de items die worden bewaakt door Zabbix-proxy, het mogelijk is dat negeren niet correct wordt uitgevoerd door de proxy, en de waarden worden opgeslagen in de geschiedenis als dezelfde waarde, tenzij de Zabbix-serverdatabase wordt geüpgraded.
Prometheus
Prometheus patroon Gebruik de volgende query om de vereiste gegevens uit Prometheus-metrics te extraheren.
Zie Prometheus-controles voor meer details.
Prometheus naar JSON Zet de vereiste Prometheus-metrics om naar JSON-formaat.
Zie Prometheus-controles voor meer details.

Voor de voorverwerkingsstappen van wijziging en throttling moet Zabbix de laatste waarde onthouden om de nieuwe waarde te berekenen/vergelijken zoals vereist. Deze vorige waarden worden behandeld door de voorverwerkings beheerder. Als de Zabbix-server of -proxy wordt herstart of als er wijzigingen worden aangebracht aan de voorverwerkingsstappen, wordt de laatste waarde van het betreffende item gereset, wat resulteert in:

  • voor Eenvoudige verandering, Verandering per seconde stappen - de volgende waarde zal worden genegeerd omdat er geen vorige waarde is om de verandering te berekenen vanaf;
  • voor Ongewijzigde waarden negeren, Ongewijzigde waarden negeren met interval stappen - de volgende waarde wordt nooit genegeerd, zelfs niet als dit wel had gemoeten vanwege de regels voor het negeren.

Het Type informatie parameter van het item wordt weergegeven onderaan het tabblad wanneer ten minste één voorverwerkingsstap is gedefinieerd. Indien nodig is het mogelijk om het type informatie te wijzigen zonder het Voorverwerking tabblad te verlaten. Zie Een item aanmaken voor een gedetailleerde beschrijving van de parameter.

Als je een aangepaste vermenigvuldiger gebruikt of de waarde opslaat als Verandering per seconde voor items met het type informatie ingesteld op Numeriek (ongesigneerd) en de resulterende berekende waarde is eigenlijk een zwevend komma getal, wordt de berekende waarde nog steeds geaccepteerd als correct door het trimmen van het decimale deel en het opslaan van de waarde als een geheel getal.

Supported transformations

All supported transformations are listed below. Click on the transformation name to see full details about it.

Name Description Type
Regular expression Match the value to the regular expression and replace with the required output. Text
Replace Find the search string and replace it with another (or nothing).
Trim Remove specified characters from the beginning and end of the value.
Right trim Remove specified characters from the end of the value.
Left trim Remove specified characters from the beginning of the value.
XML XPath Extract value or fragment from XML data using XPath functionality. Structured data
JSON Path Extract value or fragment from JSON data using JSONPath functionality.
CSV to JSON Convert CSV file data into JSON format.
XML to JSON Convert data in XML format to JSON.
SNMP walk value Extract value by the specified OID/MIB name. SNMP
SNMP walk to JSON Convert SNMP values to JSON.
Custom multiplier Multiply the value by the specified integer or floating-point value. Arithmetic
Simple change Calculate the difference between the current and previous value. Change
Change per second Calculate the value change (difference between the current and previous value) speed per second.
Boolean to decimal Convert the value from boolean format to decimal. Numeral systems
Octal to decimal Convert the value from octal format to decimal.
Hexadecimal to decimal Convert the value from hexadecimal format to decimal.
JavaScript Enter JavaScript code. Custom scripts
In range Define a range that a value should be in. Validation
Matches regular expression Specify a regular expression that a value must match.
Does not match regular expression Specify a regular expression that a value must not match.
Check for error in JSON Check for an application-level error message located at JSONPath.
Check for error in XML Check for an application-level error message located at XPath.
Check for error using a regular expression Check for an application-level error message using a regular expression.
Check for not supported value Check if there was an error in retrieving item value.
Discard unchanged Discard a value if it has not changed. Throttling
Discard unchanged with heartbeat Discard a value if it has not changed within the defined time period.
Prometheus pattern Use the following query to extract the required data from Prometheus metrics. Prometheus
Prometheus to JSON Convert the required Prometheus metrics to JSON.

Note that for Change and Throttling preprocessing steps, Zabbix has to remember the last value to calculate/compare the new value as required. These previous values are handled by the preprocessing manager. If Zabbix server or proxy is restarted or there is any change made to preprocessing steps, the last value of the corresponding item is reset, resulting in:

  • for Simple change, Change per second steps - the next value will be ignored because there is no previous value to calculate the change from;
  • for Discard unchanged, Discard unchanged with heartbeat steps - the next value will never be discarded, even if it should have been because of discarding rules.
Regular expression

Match the value to the regular expression and replace with the required output.

Parameters:

  • pattern - the regular expression;
  • output - the output formatting template. An \N (where N=1…9) escape sequence is replaced with the Nth matched group. A \0 escape sequence is replaced with the matched text.

Comments:

  • A failure to match the input value will make the item unsupported;
  • The regular expression supports extraction of maximum 10 captured groups with the \N sequence;
  • If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.
  • Please refer to regular expressions section for some existing examples.
Replace

Find the search string and replace it with another (or nothing).

Parameters:

  • search string - the string to find and replace, case-sensitive (required);
  • replacement - the string to replace the search string with. The replacement string may also be empty effectively allowing to delete the search string when found.

Comments:

  • All occurrences of the search string will be replaced;
  • It is possible to use escape sequences to search for or replace line breaks, carriage return, tabs and spaces "\n \r \t \s"; backslash can be escaped as "\\" and escape sequences can be escaped as "\\n";
  • Escaping of line breaks, carriage return, tabs is automatically done during low-level discovery.
Trim

Remove specified characters from the beginning and end of the value.

Right trim

Remove specified characters from the end of the value.

Left trim

Remove specified characters from the beginning of the value.

XML XPath

Extract value or fragment from XML data using XPath functionality.

Comments:

  • For this option to work, Zabbix server (or Zabbix proxy) must be compiled with libxml support;
  • Namespaces are not supported;
  • If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.

Examples:

number(/document/item/value) #will extract '10' from <document><item><value>10</value></item></document>
       number(/document/item/@attribute) #will extract '10' from <document><item attribute="10"></item></document>
       /document/item #will extract '<item><value>10</value></item>' from <document><item><value>10</value></item></document>
JSON Path

Extract value or fragment from JSON data using JSONPath functionality.

If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.

CSV to JSON

Convert CSV file data into JSON format.

For more information, see: CSV to JSON preprocessing.

XML to JSON

Convert data in XML format to JSON.

For more information, see: Serialization rules.

If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.

SNMP walk value

Extract value by the specified OID/MIB name and apply formatting options:

  • Unchanged - return hex-string as unescaped hex string;
  • UTF-8 from hex-STRING - convert hex-string to UTF-8 string;
  • MAC from hex-STRING - validate hex-string as MAC address and return a proper MAC address string (where ' ' are replaced by ':');
  • Integer from BITS - convert the first 8 bytes of a bit string expressed as a sequence of hex characters (e.g., "1A 2B 3C 4D") into a 64-bit unsigned integer. In bit strings longer than 8 bytes, consequent bytes will be ignored.

If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.

SNMP walk to JSON

Convert SNMP values to JSON.

Specify a field name in the JSON and the corresponding SNMP OID path. Field values will be populated by values in the specified SNMP OID path.

Comments:

  • Similar value formatting options as in the SNMP walk value step are available;
  • You may use this preprocessing step for SNMP OID discovery;
  • If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.
SNMP get value

Apply formatting options to the SNMP get value:

  • UTF-8 from Hex-STRING - convert hex-string to UTF-8 string;
  • MAC from Hex-STRING - validate hex-string as MAC address and return a proper MAC address string (where ' ' are replaced by ':');
  • Integer from BITS - convert the first 8 bytes of a bit string expressed as a sequence of hex characters (e.g., "1A 2B 3C 4D") into a 64-bit unsigned integer. In bit strings longer than 8 bytes, consequent bytes will be ignored.

If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.

Custom multiplier

Multiply the value by the specified integer or floating-point value.

Comments:

  • Use this option to convert values received in KB, MBps, etc., into B, Bps. Otherwise, Zabbix cannot correctly set prefixes (K, M, G, etc.).
  • Note that if the item type of information is Numeric (unsigned), incoming values with a fractional part will be trimmed (i.e., '0.9' will become '0') before the custom multiplier is applied;
  • If you use a custom multiplier or store value as Change per second for items with the type of information set to Numeric (unsigned) and the resulting calculated value is actually a float number, the calculated value is still accepted as a correct one by trimming the decimal part and storing the value as an integer;
  • Supported: scientific notation, for example, 1e+70; user macros and LLD macros; strings that include macros, for example, {#MACRO}e+10, {$MACRO1}e+{$MACRO2}. The macros must resolve to an integer or a floating-point number.
  • If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.
Simple change

Calculate the difference between the current and previous value.

Comments:

  • This step can be useful to measure a constantly growing value;
  • Evaluated as value-prev_value, where value - the current value; prev_value - the previously received value;
  • Only one change operation per item ("Simple change" or "Change per second") is allowed;
  • If the current value is smaller than the previous value, Zabbix discards that difference (stores nothing) and waits for another value;
  • If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.
Change per second

Calculate the value change (difference between the current and previous value) speed per second.

Comments:

  • This step is extremely useful to get the speed per second of a constantly growing value;
  • As this calculation may produce floating-point numbers, it is recommended to set the 'Type of information' to Numeric (float), even if the incoming raw values are integers. This is especially relevant for small numbers where the decimal part matters. If the floating-point values are large and may exceed the 'float' field length in which case the entire value may be lost, it is actually suggested to use Numeric (unsigned) and thus trim only the decimal part.
  • Evaluated as (value-prev_value)/(time-prev_time), where value - the current value; prev_value - the previously received value; time - the current timestamp; prev_time - the timestamp of the previous value;
  • Only one change operation per item ("Simple change" or "Change per second") is allowed;
  • If the current value is smaller than the previous value, Zabbix discards that difference (stores nothing) and waits for another value. This helps to work correctly with, for instance, a wrapping (overflow) of 32-bit SNMP counters.
  • If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.
Boolean to decimal

Convert the value from boolean format to decimal.

Comments:

  • The textual representation is translated into either 0 or 1. Thus, 'TRUE' is stored as 1 and 'FALSE' is stored as 0. All values are matched in a case-insensitive way. Currently recognized values are, for TRUE - true, t, yes, y, on, up, running, enabled, available, ok, master; for FALSE - false, f, no, n, off, down, unused, disabled, unavailable, err, slave. Additionally, any non-zero numeric value is considered to be TRUE and zero is considered to be FALSE.
  • If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.
Octal to decimal

Convert the value from octal format to decimal.

If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.

Hexadecimal to decimal

Convert the value from hexadecimal format to decimal.

If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.

JavaScript

Enter JavaScript code in the block that appears when clicking in the parameter field or on the pencil icon.

Comments:

In range

Define a range that a value should be in by specifying minimum/maximum values (inclusive).

Comments:

  • Numeric values are accepted (including any number of digits, optional decimal part and optional exponential part, negative values);
  • The minimum value should be less than the maximum;
  • At least one value must exist;
  • User macros and low-level discovery macros can be used;
  • If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.
Matches regular expression

Specify a regular expression that a value must match.

If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.

Does not match regular expression

Specify a regular expression that a value must not match.

If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.

Check for error in JSON

Check for an application-level error message located at JSONPath. Stop processing if succeeded and the message is not empty; otherwise, continue processing with the value that was before this preprocessing step.

Comments:

  • These external service errors are reported to the user as is, without adding preprocessing step information;
  • No error will be reported in case of failing to parse invalid JSON;
  • If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.
Check for error in XML

Check for an application-level error message located at XPath. Stop processing if succeeded and the message is not empty; otherwise, continue processing with the value that was before this preprocessing step.

Comments:

  • These external service errors are reported to the user as is, without adding preprocessing step information;
  • No error will be reported in case of failing to parse invalid XML;
  • If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.
Check for error using a regular expression

Check for an application-level error message using a regular expression. Stop processing if succeeded and the message is not empty; otherwise, continue processing with the value that was before this preprocessing step.

Parameters:

  • pattern - the regular expression;
  • output - the output formatting template. An \N (where N=1…9) escape sequence is replaced with the Nth matched group. A \0 escape sequence is replaced with the matched text.

Comments:

  • These external service errors are reported to the user as is, without adding preprocessing step information;
  • If you mark the Custom on fail checkbox, it is possible to select custom error-handling options: either to discard the value, set a specified value, or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected.
Check for not supported value

Check if there was an error in retrieving item value.

Comments:

  • Normally that would lead to the item becoming unsupported, but you may modify that behavior by specifying the Custom on fail error-handling options: to discard the value, to set a specified value (that can also be used in triggers) or set a specified error message. In case of a failed preprocessing step, the item will not become unsupported if the option to discard the value or set a specified value is selected. Note that for this preprocessing step, the Custom on fail checkbox is grayed out and always marked.
  • This step is always executed as the first preprocessing step and is placed above all others after saving changes to the item. It can be used only once.
Discard unchanged

Discard a value if it has not changed.

Comments:

  • If a value is discarded, it is not saved in the database and Zabbix server has no knowledge that this value was received. No trigger expressions will be evaluated, as a result, no problems for related triggers will be created/resolved. Functions will work only based on data that is actually saved in the database. As trends are built based on data in the database, if there is no value saved for an hour then there will also be no trends data for that hour.
  • Only one throttling option can be specified per item.
Discard unchanged with heartbeat

Discard a value if it has not changed within the defined time period (in seconds).

Comments:

  • Positive integer values are supported to specify the seconds (minimum - 1 second);
  • Time suffixes can be used (e.g., 30s, 1m, 2h, 1d);
  • User macros and low-level discovery macros can be used;
  • If a value is discarded, it is not saved in the database and Zabbix server has no knowledge that this value was received. No trigger expressions will be evaluated, as a result, no problems for related triggers will be created/resolved. Functions will work only based on data that is actually saved in the database. As trends are built based on data in the database, if there is no value saved for an hour then there will also be no trends data for that hour.
  • Only one throttling option can be specified per item.
Prometheus pattern

Use the following query to extract the required data from Prometheus metrics.

See Prometheus checks for more details.

Prometheus to JSON

Convert the required Prometheus metrics to JSON.

See Prometheus checks for more details.

Macro support

User macros and user macros with context are supported in the preprocessing parameters, including JavaScript code.

The macro context is ignored when a macro is replaced with its value. The macro value is inserted in the code as is, it is not possible to add additional escaping before placing the value in the JavaScript code. Please be advised that this can cause JavaScript errors in some cases.

Testing

See preprocessing testing.