2 Vorverarbeitung von Datenpunktwerten

Übersicht

Die Vorverarbeitung ermöglicht es Ihnen, Transformationen auf die empfangenen Datenpunkt-Werte anzuwenden, bevor sie in der Datenbank gespeichert werden. Diese Transformationen/Vorverarbeitungsschritte werden vom Zabbix Server oder Proxy ausgeführt (wenn Datenpunkte vom Proxy überwacht werden).

Diese Funktion unterstützt eine Vielzahl von Anwendungsfällen, zum Beispiel:

  • Umwandlung von Byte in Bit (z. B. durch Multiplikation von Netzwerkverkehrswerten mit „8“);
  • Berechnung von Statistiken pro Sekunde für inkrementell ansteigende Werte;
  • Anwenden regulärer Ausdrücke, um Werte zu extrahieren oder zu ändern;
  • Ausführen benutzerdefinierter Skripte auf Werten;
  • Verwerfen unveränderter Werte zur Optimierung der Datenbankspeicherung.

Für einen Datenpunkt können ein oder mehrere Vorverarbeitungsschritte konfiguriert werden. Diese Schritte werden in der Reihenfolge ausgeführt, in der sie konfiguriert sind.

Wenn ein Vorverarbeitungsschritt fehlschlägt, wird ein Datenpunkt nicht unterstützt. Dies kann durch die Fehlerbehandlung Custom on fail vermieden werden (für die meisten Transformationen verfügbar), mit der Sie Werte verwerfen oder benutzerdefinierte Werte festlegen können.

Bei Log-Datenpunkten setzen Log-Metadaten (ohne Wert) den Status „nicht unterstützt“ des Datenpunkts immer zurück, sodass er wieder unterstützt wird. Dies geschieht auch dann, wenn der ursprüngliche Fehler nach dem Empfang eines Log-Werts vom Agent aufgetreten ist.

Alle an die Vorverarbeitung übergebenen Werte werden zunächst als Zeichenfolgen behandelt. Die Konvertierung in den gewünschten Werttyp (wie in der Datenpunkt-Konfiguration definiert) erfolgt am Ende der Vorverarbeitungspipeline. Bestimmte Vorverarbeitungsschritte können jedoch bei Bedarf frühere Konvertierungen auslösen. Detaillierte technische Informationen finden Sie unter Details zur Vorverarbeitung.

Um sicherzustellen, dass Ihre Vorverarbeitungskonfiguration wie erwartet funktioniert, können Sie sie testen.

Siehe auch: Beispiele zur Vorverarbeitung

Konfiguration

Vorverarbeitungsschritte werden im Reiter Preprocessing des Konfigurationsformulars für den Datenpunkt definiert.

Klicken Sie auf Add, um eine unterstützte Transformation auszuwählen.

Das Feld Type of information wird am unteren Rand des Reiters angezeigt, wenn mindestens ein Vorverarbeitungsschritt definiert ist. Falls erforderlich, kann der Informationstyp geändert werden, ohne den Reiter Preprocessing zu verlassen. Eine detaillierte Beschreibung der Parameter finden Sie unter Erstellen eines Datenpunkts.

Unterstützte Transformationen

Alle unterstützten Transformationen sind unten aufgeführt. Klicken Sie auf den Namen der Transformation, um vollständige Details dazu anzuzeigen.

Name Beschreibung Typ
Regulärer Ausdruck Vergleichen Sie den Wert mit dem regulären Ausdruck und ersetzen Sie ihn durch die erforderliche Ausgabe. Text
Ersetzen Suchen Sie die Suchzeichenfolge und ersetzen Sie sie durch eine andere (oder nichts).
Trimmen Entfernen Sie angegebene Zeichen vom Anfang und Ende des Werts.
Rechts trimmen Entfernen Sie angegebene Zeichen vom Ende des Werts.
Links trimmen Entfernen Sie angegebene Zeichen vom Anfang des Werts.
XML XPath Extrahieren Sie einen Wert oder ein Fragment aus XML-Daten mithilfe der XPath-Funktionalität. Strukturierte Daten
JSON Path Extrahieren Sie einen Wert oder ein Fragment aus JSON-Daten mithilfe der JSONPath-Funktionalität.
CSV zu JSON Konvertieren Sie CSV-Dateidaten in das JSON-Format.
XML zu JSON Konvertieren Sie Daten im XML-Format in JSON.
SNMP-Walk-Wert Extrahieren Sie einen Wert anhand des angegebenen OID-/MIB-Namens und wenden Sie Formatierungsoptionen an. SNMP
SNMP-Walk zu JSON Konvertieren Sie SNMP-Werte in JSON.
SNMP-Get-Wert Wenden Sie Formatierungsoptionen auf den SNMP-Get-Wert an.
Benutzerdefinierter Multiplikator Multiplizieren Sie den Wert mit dem angegebenen Ganzzahl- oder Gleitkommawert. Arithmetik
Einfache Änderung Berechnen Sie die Differenz zwischen dem aktuellen und dem vorherigen Wert. Änderung
Änderung pro Sekunde Berechnen Sie die Geschwindigkeit der Wertänderung (Differenz zwischen dem aktuellen und dem vorherigen Wert) pro Sekunde.
Boolean zu Dezimal Konvertieren Sie den Wert vom booleschen Format in das Dezimalformat. Zahlensysteme
Oktal zu Dezimal Konvertieren Sie den Wert vom oktalen Format in das Dezimalformat.
Hexadezimal zu Dezimal Konvertieren Sie den Wert vom hexadezimalen Format in das Dezimalformat.
JavaScript Geben Sie JavaScript-Code ein. Benutzerdefinierte Skripte
Im Bereich Definieren Sie einen Bereich, in dem sich ein Wert befinden soll. Validierung
Entspricht regulärem Ausdruck Geben Sie einen regulären Ausdruck an, dem ein Wert entsprechen muss.
Entspricht nicht regulärem Ausdruck Geben Sie einen regulären Ausdruck an, dem ein Wert nicht entsprechen darf.
Auf Fehler in JSON prüfen Prüfen Sie auf eine Fehlermeldung auf Anwendungsebene, die sich an JSONPath befindet.
Auf Fehler in XML prüfen Prüfen Sie auf eine Fehlermeldung auf Anwendungsebene, die sich an XPath befindet.
Mit regulärem Ausdruck auf Fehler prüfen Prüfen Sie mithilfe eines regulären Ausdrucks auf eine Fehlermeldung auf Anwendungsebene.
Auf nicht unterstützten Wert prüfen Prüfen Sie, ob kein Datenpunkt-Wert abgerufen werden konnte.
Unveränderte Werte verwerfen Verwerfen Sie einen Wert, wenn er sich nicht geändert hat. Drosselung
Unveränderte Werte mit Heartbeat verwerfen Verwerfen Sie einen Wert, wenn er sich innerhalb des definierten Zeitraums nicht geändert hat.
Prometheus-Muster Verwenden Sie die folgende Abfrage, um die erforderlichen Daten aus Prometheus-Metriken zu extrahieren. Prometheus
Prometheus zu JSON Konvertieren Sie die erforderlichen Prometheus-Metriken in JSON.

Beachten Sie, dass Zabbix für die Vorverarbeitungsschritte Änderung und Drosselung den letzten Wert speichern muss, um den neuen Wert wie erforderlich zu berechnen bzw. zu vergleichen. Diese vorherigen Werte werden vom Vorverarbeitungsmanager verwaltet. Wenn der Zabbix Server oder Proxy neu gestartet wird oder Änderungen an den Vorverarbeitungsschritten vorgenommen werden, wird der letzte Wert des entsprechenden Datenpunkts zurückgesetzt, was zu Folgendem führt:

  • bei den Schritten Einfache Änderung und Änderung pro Sekunde wird der nächste Wert ignoriert, da kein vorheriger Wert vorhanden ist, aus dem die Änderung berechnet werden kann;
  • bei den Schritten Unveränderte Werte verwerfen und Unveränderte Werte mit Heartbeat verwerfen wird der nächste Wert niemals verworfen, selbst wenn er gemäß den Verwerfungsregeln hätte verworfen werden sollen.
Regulärer Ausdruck

Den Wert mit dem regulären Ausdruck abgleichen und durch die erforderliche Ausgabe ersetzen.

Parameter:

  • pattern - der reguläre Ausdruck;
  • output - die Vorlage für die Ausgabeformatierung. Eine Escape-Sequenz \N (wobei N=1…9) wird durch die N-te übereinstimmende Gruppe ersetzt. Eine Escape-Sequenz \0 wird durch den übereinstimmenden Text ersetzt.

Kommentare:

  • Wenn der Eingabewert nicht übereinstimmt, wird der Datenpunkt nicht unterstützt;
  • Der reguläre Ausdruck unterstützt die Extraktion von maximal 10 erfassten Gruppen mit der Sequenz \N;
  • Wenn Sie das Kontrollkästchen Custom on fail markieren, können benutzerdefinierte Optionen zur Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Im Fall eines fehlgeschlagenen Vorverarbeitungsschritts wird der Datenpunkt nicht nicht unterstützt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.
  • Einige vorhandene Beispiele finden Sie im Abschnitt regular expressions.
Ersetzen

Suchen Sie die Suchzeichenfolge und ersetzen Sie sie durch eine andere (oder nichts).

Parameter:

  • Suchzeichenfolge - die zu findende und zu ersetzende Zeichenfolge, Groß-/Kleinschreibung wird beachtet (erforderlich);
  • Ersetzung - die Zeichenfolge, durch die die Suchzeichenfolge ersetzt wird. Die Ersetzungszeichenfolge kann auch leer sein, wodurch die Suchzeichenfolge beim Auffinden effektiv gelöscht werden kann.

Kommentare:

  • Alle Vorkommen der Suchzeichenfolge werden ersetzt;
  • Es ist möglich, Escape-Sequenzen zu verwenden, um nach Zeilenumbrüchen, Wagenrückläufen, Tabulatoren und Leerzeichen "\n \r \t \s" zu suchen oder diese zu ersetzen; der Backslash kann als "\\" maskiert werden und Escape-Sequenzen können als "\\n" maskiert werden;
  • Das Maskieren von Zeilenumbrüchen, Wagenrückläufen und Tabulatoren erfolgt bei der Low-Level-Discovery automatisch.
Trim

Entfernt angegebene Zeichen vom Anfang und Ende des Werts.

Rechts trimmen

Entfernt die angegebenen Zeichen vom Ende des Werts.

Linkes Trimmen

Entfernt angegebene Zeichen vom Anfang des Werts.

XML XPath

Extrahiert einen Wert oder ein Fragment aus XML-Daten mithilfe der XPath-Funktionalität.

Kommentare:

  • Damit diese Option funktioniert, muss der Zabbix Server (oder Zabbix Proxy) mit libxml-Unterstützung kompiliert sein;
  • Namespaces werden nicht unterstützt;
  • Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler markieren, können benutzerdefinierte Optionen zur Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Wenn ein Vorverarbeitungsschritt fehlschlägt, wird der Datenpunkt nicht in den Status „nicht unterstützt“ versetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.

Beispiele:

number(/document/item/value) #extrahiert '10' aus <document><item><value>10</value></item></document>
number(/document/item/@attribute) #extrahiert '10' aus <document><item attribute="10"></item></document>
/document/item #extrahiert '<item><value>10</value></item>' aus <document><item><value>10</value></item></document>
JSON Path

Extrahieren Sie einen Wert oder ein Fragment aus JSON-Daten mithilfe der JSONPath-Funktionalität.

Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler aktivieren, können benutzerdefinierte Optionen zur Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Falls ein Vorverarbeitungsschritt fehlschlägt, wird der Datenpunkt nicht als nicht unterstützt markiert, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.

CSV in JSON

Konvertiert CSV-Dateidaten in das JSON-Format.

Weitere Informationen finden Sie unter: CSV-in-JSON-Präprozessierung.

XML in JSON umwandeln

Daten im XML-Format in JSON umwandeln.

Weitere Informationen finden Sie unter: Serialisierungsregeln.

Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler markieren, können benutzerdefinierte Optionen zur Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Falls ein Vorverarbeitungsschritt fehlschlägt, wird der Datenpunkt nicht auf nicht unterstützt gesetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.

SNMP-Walk-Wert

Wert anhand des angegebenen OID-/MIB-Namens extrahieren und Formatierungsoptionen anwenden:

  • Unverändert - Hex-String als nicht maskierten Hex-String zurückgeben (beachten Sie, dass Anzeigehinweise weiterhin angewendet werden);
  • UTF-8 aus Hex-STRING - Hex-String in eine UTF-8-Zeichenkette umwandeln;
  • MAC aus Hex-STRING - Hex-String als MAC-Adresse validieren und eine korrekte MAC-Adresszeichenkette zurückgeben (wobei ' ' durch ':' ersetzt werden);
  • Integer aus BITS - die ersten 8 Bytes einer Bit-Zeichenkette, dargestellt als Folge von Hex-Zeichen (z. B. „1A 2B 3C 4D“), in eine vorzeichenlose 64-Bit-Ganzzahl umwandeln. Bei Bit-Zeichenketten mit mehr als 8 Bytes werden nachfolgende Bytes ignoriert.

Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler aktivieren, können benutzerdefinierte Optionen zur Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Im Fall eines fehlgeschlagenen Vorverarbeitungsschritts wird der Datenpunkt nicht auf „nicht unterstützt“ gesetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.

SNMP walk in JSON

SNMP-Werte in JSON konvertieren.

Geben Sie einen Feldnamen im JSON und den entsprechenden SNMP-OID-Pfad an. Feldwerte werden mit Werten aus dem angegebenen SNMP-OID-Pfad befüllt.

Kommentare:

  • Ähnliche Optionen zur Wertformatierung wie im Schritt SNMP-Walk-Wert sind verfügbar;
  • Sie können diesen Vorverarbeitungsschritt für die SNMP-OID-Erkennung verwenden;
  • Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler markieren, können benutzerdefinierte Optionen zur Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Falls ein Vorverarbeitungsschritt fehlschlägt, wird der Datenpunkt nicht in den Status „nicht unterstützt“ versetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.
SNMP-Get-Wert

Wenden Sie Formatierungsoptionen auf den SNMP-Get-Wert an:

  • UTF-8 aus Hex-STRING - Hex-String in eine UTF-8-Zeichenkette umwandeln;
  • MAC aus Hex-STRING - Hex-String als MAC-Adresse validieren und eine korrekte MAC-Adresszeichenkette zurückgeben (wobei ' ' durch ':' ersetzt werden);
  • Integer aus BITS - die ersten 8 Bytes einer Bit-Zeichenkette, dargestellt als Folge von Hex-Zeichen (z. B. „1A 2B 3C 4D“), in eine vorzeichenlose 64-Bit-Ganzzahl umwandeln. Bei Bit-Zeichenketten mit mehr als 8 Bytes werden die nachfolgenden Bytes ignoriert.

Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler markieren, können Sie benutzerdefinierte Optionen zur Fehlerbehandlung angeben: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Im Falle eines fehlgeschlagenen Vorverarbeitungsschritts wird der Datenpunkt nicht in den Status „nicht unterstützt“ versetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.

Benutzerdefinierter Multiplikator

Multiplizieren Sie den Wert mit dem angegebenen Ganzzahl- oder Gleitkommawert.

Kommentare:

  • Verwenden Sie diese Option, um Werte, die in KB, MBps usw. empfangen werden, in B, Bps umzuwandeln. Andernfalls kann Zabbix Präfixe (K, M, G usw.) nicht korrekt setzen.
  • Beachten Sie, dass, wenn der Informations-Typ des Datenpunkts Numeric (unsigned) ist, eingehende Werte mit einem Nachkommateil vor Anwendung des benutzerdefinierten Multiplikators abgeschnitten werden (d. h. „0.9“ wird zu „0“);
  • Wenn Sie einen benutzerdefinierten Multiplikator verwenden oder den Wert als Change per second für Datenpunkte speichern, deren Informations-Typ auf Numeric (unsigned) gesetzt ist, und der resultierende berechnete Wert tatsächlich eine Gleitkommazahl ist, wird der berechnete Wert dennoch als korrekt akzeptiert, indem der Dezimalteil abgeschnitten und der Wert als Ganzzahl gespeichert wird;
  • Unterstützt werden: wissenschaftliche Notation, zum Beispiel 1e+70; Benutzermakros und LLD-Makros; Zeichenfolgen, die Makros enthalten, zum Beispiel {#MACRO}e+10, {$MACRO1}e+{$MACRO2}. Die Makros müssen zu einer Ganzzahl oder einer Gleitkommazahl aufgelöst werden.
  • Wenn Sie das Kontrollkästchen Custom on fail aktivieren, können benutzerdefinierte Optionen zur Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Im Fall eines fehlgeschlagenen Vorverarbeitungsschritts wird der Datenpunkt nicht auf „nicht unterstützt“ gesetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.
Einfache Änderung

Berechnet die Differenz zwischen dem aktuellen und dem vorherigen Wert.

Kommentare:

  • Dieser Schritt kann nützlich sein, um einen ständig wachsenden Wert zu messen;
  • Ausgewertet als Wert-prev_value, wobei Wert der aktuelle Wert ist; prev_value der zuvor empfangene Wert;
  • Pro Datenpunkt ist nur eine Änderungsoperation („Einfache Änderung“ oder „Änderung pro Sekunde“) zulässig;
  • Wenn der aktuelle Wert kleiner ist als der vorherige Wert, verwirft Zabbix diese Differenz (speichert nichts) und wartet auf einen weiteren Wert;
  • Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler markieren, können benutzerdefinierte Optionen zur Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Im Fall eines fehlgeschlagenen Vorverarbeitungsschritts wird der Datenpunkt nicht in den Status „nicht unterstützt“ versetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.
Änderung pro Sekunde

Berechnet die Geschwindigkeit der Wertänderung (Differenz zwischen dem aktuellen und dem vorherigen Wert) pro Sekunde.

Kommentare:

  • Dieser Schritt ist nützlich, um die Geschwindigkeit pro Sekunde eines ständig wachsenden Werts zu berechnen;
  • Da diese Berechnung Gleitkommazahlen erzeugen kann, wird empfohlen, den „Typ der Information“ auf Numerisch (Gleitkommazahl) zu setzen, auch wenn die eingehenden Rohwerte Ganzzahlen sind. Dies ist besonders bei kleinen Zahlen relevant, bei denen der Dezimalteil wichtig ist. Wenn die Gleitkommawerte groß sind und die Feldlänge von „float“ überschreiten können, wodurch der gesamte Wert verloren gehen kann, wird tatsächlich empfohlen, Numerisch (vorzeichenlos) zu verwenden und damit nur den Dezimalteil abzuschneiden.
  • Ausgewertet als (value-prev_value)/(time-prev_time), wobei value der aktuelle Wert ist, prev_value der zuvor empfangene Wert, time der aktuelle Zeitstempel und prev_time der Zeitstempel des vorherigen Werts;
  • Pro Datenpunkt ist nur eine Änderungsoperation („Einfache Änderung“ oder „Änderung pro Sekunde“) zulässig;
  • Wenn der aktuelle Wert kleiner ist als der vorherige Wert, verwirft Zabbix diese Differenz (speichert nichts) und wartet auf einen weiteren Wert. Dies hilft dabei, beispielsweise mit einem Umlauf (Overflow) von 32-Bit-SNMP-Zählern korrekt zu arbeiten.
  • Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler markieren, können benutzerdefinierte Optionen zur Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Im Fall eines fehlgeschlagenen Vorverarbeitungsschritts wird der Datenpunkt nicht auf „nicht unterstützt“ gesetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.
Boolesch in Dezimal umwandeln

Wandelt den Wert vom booleschen Format in ein Dezimalformat um.

Kommentare:

  • Die textuelle Darstellung wird entweder in 0 oder 1 umgewandelt. Somit wird „TRUE“ als 1 gespeichert und „FALSE“ als 0. Alle Werte werden ohne Beachtung der Groß-/Kleinschreibung abgeglichen. Derzeit werden für TRUE folgende Werte erkannt: true, t, yes, y, on, up, running, enabled, available, ok, master; für FALSE: false, f, no, n, off, down, unused, disabled, unavailable, err, slave. Zusätzlich wird jeder numerische Wert ungleich null als TRUE betrachtet, und null wird als FALSE betrachtet.
  • Wenn Sie das Kontrollkästchen Custom on fail markieren, können benutzerdefinierte Optionen für die Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Im Fall eines fehlgeschlagenen Vorverarbeitungsschritts wird der Datenpunkt nicht auf „nicht unterstützt“ gesetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.
Oktal in Dezimal umwandeln

Wandelt den Wert vom Oktalformat in das Dezimalformat um.

Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler markieren, können Sie benutzerdefinierte Optionen für die Fehlerbehandlung festlegen: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Falls ein Vorverarbeitungsschritt fehlschlägt, wird der Datenpunkt nicht in den Status „nicht unterstützt“ versetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.

Hexadezimal in Dezimal

Konvertiert den Wert vom Hexadezimalformat in das Dezimalformat.

Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler markieren, können Sie benutzerdefinierte Optionen für die Fehlerbehandlung angeben: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Falls ein Vorverarbeitungsschritt fehlschlägt, wird der Datenpunkt nicht in den Status „nicht unterstützt“ versetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.

JavaScript

Geben Sie JavaScript-Code im modalen Editor ein, der sich öffnet, wenn Sie in das Parameterfeld oder auf das Stiftsymbol daneben klicken.

Verwenden Sie in der Vorverarbeitungs-JavaScript keine nicht deklarierten Zuweisungen. Verwenden Sie var, um lokale Variablen zu deklarieren.

Kommentare:

Im Bereich

Definieren Sie einen Bereich, in dem ein Wert liegen soll, indem Sie Mindest-/Höchstwerte (einschließlich) angeben.

Kommentare:

  • Numerische Werte werden akzeptiert (einschließlich einer beliebigen Anzahl von Ziffern, optionalem Dezimalteil und optionalem Exponentialteil, negativen Werten);
  • Der Mindestwert muss kleiner als der Höchstwert sein;
  • Mindestens ein Wert muss vorhanden sein;
  • Benutzermakros und Low-Level-Discovery-Makros können verwendet werden;
  • Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler markieren, können benutzerdefinierte Optionen für die Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Im Falle eines fehlgeschlagenen Vorverarbeitungsschritts wird der Datenpunkt nicht in den Status „nicht unterstützt“ versetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.
Entspricht regulärem Ausdruck

Geben Sie einen regulären Ausdruck an, dem ein Wert entsprechen muss.

Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler aktivieren, können benutzerdefinierte Optionen zur Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Im Falle eines fehlgeschlagenen Vorverarbeitungsschritts wird der Datenpunkt nicht in den Status „nicht unterstützt“ versetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.

Entspricht nicht dem regulären Ausdruck

Geben Sie einen regulären Ausdruck an, dem ein Wert nicht entsprechen darf.

Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler aktivieren, können benutzerdefinierte Optionen zur Fehlerbehandlung angegeben werden: Entweder wird der Wert verworfen, ein angegebener Wert gesetzt oder eine angegebene Fehlermeldung gesetzt. Falls ein Vorverarbeitungsschritt fehlschlägt, wird der Datenpunkt nicht auf „nicht unterstützt“ gesetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.

Auf Fehler in JSON prüfen

Prüft auf eine Fehlermeldung auf Anwendungsebene, die sich unter dem JSONPath befindet. Die Verarbeitung wird beendet, wenn dies erfolgreich ist und die Meldung nicht leer ist; andernfalls wird die Verarbeitung mit dem Wert fortgesetzt, der vor diesem Vorverarbeitungsschritt vorhanden war.

Kommentare:

  • Diese Fehler externer Dienste werden dem Benutzer unverändert gemeldet, ohne Informationen zum Vorverarbeitungsschritt hinzuzufügen;
  • Bei einem Fehlschlag beim Parsen von ungültigem JSON wird kein Fehler gemeldet;
  • Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler aktivieren, können benutzerdefinierte Optionen zur Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Im Falle eines fehlgeschlagenen Vorverarbeitungsschritts wird der Datenpunkt nicht in den Status „nicht unterstützt“ versetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.
Auf Fehler in XML prüfen

Prüft auf eine Fehlermeldung auf Anwendungsebene, die sich am XPath befindet. Die Verarbeitung wird beendet, wenn sie erfolgreich war und die Meldung nicht leer ist; andernfalls wird die Verarbeitung mit dem Wert fortgesetzt, der vor diesem Vorverarbeitungsschritt vorhanden war.

Kommentare:

  • Diese Fehler externer Dienste werden dem Benutzer unverändert gemeldet, ohne Informationen zum Vorverarbeitungsschritt hinzuzufügen;
  • Bei einem Fehlschlag beim Parsen von ungültigem XML wird kein Fehler gemeldet;
  • Wenn Sie das Kontrollkästchen Benutzerdefiniert bei Fehler markieren, können benutzerdefinierte Optionen für die Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Im Fall eines fehlgeschlagenen Vorverarbeitungsschritts wird der Datenpunkt nicht in den Status „nicht unterstützt“ versetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.
Auf Fehler mit einem regulären Ausdruck prüfen

Prüfen Sie mit einem regulären Ausdruck auf eine Fehlermeldung auf Anwendungsebene. Beenden Sie die Verarbeitung bei Erfolg, wenn die Meldung nicht leer ist; andernfalls setzen Sie die Verarbeitung mit dem Wert fort, der vor diesem Vorverarbeitungsschritt vorhanden war.

Parameter:

  • pattern - der reguläre Ausdruck;
  • output - die Vorlage für die Ausgabeformatierung. Eine Escape-Sequenz \N (wobei N=1…9) wird durch die N-te übereinstimmende Gruppe ersetzt. Eine Escape-Sequenz \0 wird durch den übereinstimmenden Text ersetzt.

Kommentare:

  • Diese Fehler externer Dienste werden dem Benutzer unverändert gemeldet, ohne Informationen zum Vorverarbeitungsschritt hinzuzufügen;
  • Wenn Sie das Kontrollkästchen Custom on fail markieren, können benutzerdefinierte Optionen für die Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Im Fall eines fehlgeschlagenen Vorverarbeitungsschritts wird der Datenpunkt nicht in den Status „nicht unterstützt“ versetzt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.
Auf nicht unterstützten Wert prüfen

Prüfen, ob kein Datenpunktwert abgerufen werden konnte. Geben Sie an, wie der Fehler verarbeitet werden soll, basierend auf der Prüfung der zurückgegebenen Fehlermeldung.

Parameter:

  • scope - wählen Sie den Geltungsbereich der Fehlerverarbeitung aus:
    beliebiger Fehler - jeder Fehler;
    Fehler entspricht - nur der Fehler, der dem in pattern angegebenen regulären Ausdruck entspricht;
    Fehler entspricht nicht - nur der Fehler, der nicht dem in pattern angegebenen regulären Ausdruck entspricht
  • pattern - der reguläre Ausdruck, mit dem der Fehler abgeglichen wird. Wenn im Parameter scope beliebiger Fehler ausgewählt ist, wird dieses Feld nicht angezeigt. Falls angezeigt, ist dieses Feld erforderlich.

Kommentare:

  • Normalerweise würde das Fehlen bzw. der Fehler beim Abrufen eines Werts dazu führen, dass der Datenpunkt nicht unterstützt wird. Mit diesem Vorverarbeitungsschritt können Sie dieses Verhalten ändern. Wenn Sie das Kontrollkästchen Custom on fail markieren (bei diesem Vorverarbeitungsschritt immer markiert und ausgegraut), können benutzerdefinierte Optionen für die Fehlerbehandlung angegeben werden: entweder den Wert verwerfen, einen angegebenen Wert setzen oder eine angegebene Fehlermeldung setzen. Falls ein Vorverarbeitungsschritt fehlschlägt, wird der Datenpunkt nicht nicht unterstützt, wenn die Option zum Verwerfen des Werts oder zum Setzen eines angegebenen Werts ausgewählt ist.
  • Dieser Vorverarbeitungsschritt prüft nur, ob kein Datenpunktwert abgerufen werden konnte. Er prüft beispielsweise nicht, ob der Typ des abgerufenen Werts (z. B. Zeichenkette) mit dem Informationstyp des Datenpunkts (z. B. numerisch) übereinstimmt; siehe dazu Beispiele zur Vorverarbeitung. Wenn ein Typkonflikt vorliegt, kann der Datenpunkt nach Ausführung aller Vorverarbeitungsschritte dennoch nicht unterstützt werden. Um auf einen Typkonflikt zu prüfen, können Sie beispielsweise den Vorverarbeitungsschritt Custom multiplier verwenden; siehe Beispiele zur Vorverarbeitung.
  • Das Erfassen von Gruppen in regulären Ausdrücken wird in den Feldern Set value to oder Set error to unterstützt. Verwenden Sie \N (wobei N=1…9), um die N-te übereinstimmende Gruppe abzurufen; verwenden Sie \0, um den übereinstimmenden Text abzurufen;
  • Diese Schritte werden immer als erste Vorverarbeitungsschritte ausgeführt und nach dem Speichern der Änderungen am Datenpunkt über allen anderen platziert;
  • Mehrere Schritte Auf nicht unterstützten Wert prüfen werden in der angegebenen Reihenfolge unterstützt. Ein Schritt für beliebiger Fehler wird in dieser Gruppe automatisch als letzter Schritt platziert.
Unveränderte Werte verwerfen

Verwirft einen Wert, wenn er sich nicht geändert hat.

Kommentare:

  • Wenn ein Wert verworfen wird, wird er nicht in der Datenbank gespeichert und der Zabbix Server hat keine Kenntnis davon, dass dieser Wert empfangen wurde. Es werden keine Auslöser-Ausdrücke ausgewertet; infolgedessen werden für zugehörige Auslöser keine Probleme erstellt/gelöst. Funktionen arbeiten nur auf Basis der Daten, die tatsächlich in der Datenbank gespeichert sind. Da Trends auf Basis der Daten in der Datenbank erstellt werden, gibt es für eine Stunde auch keine Trenddaten, wenn für diese Stunde kein Wert gespeichert wurde.
  • Pro Datenpunkt kann nur eine Drosselungsoption angegeben werden.
Unveränderte Werte mit Heartbeat verwerfen

Verwirft einen Wert, wenn er sich innerhalb des definierten Zeitraums (in Sekunden) nicht geändert hat.

Kommentare:

  • Positive Ganzzahlwerte werden zur Angabe der Sekunden unterstützt (Minimum: 1 Sekunde);
  • Zeitsuffixe können verwendet werden (z. B. 30s, 1m, 2h, 1d);
  • Benutzermakros und Low-Level-Discovery-Makros können verwendet werden;
  • Wenn ein Wert verworfen wird, wird er nicht in der Datenbank gespeichert und der Zabbix-Server hat keine Kenntnis davon, dass dieser Wert empfangen wurde. Es werden keine Auslöser-Ausdrücke ausgewertet, daher werden keine Probleme für zugehörige Auslöser erstellt/gelöst. Funktionen arbeiten nur auf Basis von Daten, die tatsächlich in der Datenbank gespeichert sind. Da Trends auf Basis der Daten in der Datenbank erstellt werden, gibt es auch keine Trenddaten für diese Stunde, wenn eine Stunde lang kein Wert gespeichert wird.
  • Pro Datenpunkt kann nur eine Drosselungsoption angegeben werden.
Prometheus-Muster

Verwenden Sie die folgende Abfrage, um die erforderlichen Daten aus Prometheus-Metriken zu extrahieren.

Weitere Details finden Sie unter Prometheus-Prüfungen.

Prometheus in JSON umwandeln

Wandeln Sie die erforderlichen Prometheus-Metriken in JSON um.

Weitere Informationen finden Sie unter Prometheus-Prüfungen.

Unterstützung von Makros

Benutzermakros und Benutzermakros mit Kontext werden unterstützt in:

  • Parametern von Vorverarbeitungsschritten, einschließlich JavaScript-Code;
  • benutzerdefinierten Parametern für die Fehlerbehandlung (Felder Wert setzen auf und Fehler setzen auf).

Der Makrokontext wird ignoriert, wenn ein Makro durch seinen Wert ersetzt wird. Der Makrowert wird unverändert in den Code eingefügt; es ist nicht möglich, vor dem Einfügen des Werts in den JavaScript-Code zusätzliches Escaping hinzuzufügen. Bitte beachten Sie, dass dies in einigen Fällen JavaScript-Fehler verursachen kann.

Testen

Siehe Testen der Vorverarbeitung.