[comment]: # ({ee805b92-1a3ec895})
# 3 Beispiele für die Vorverarbeitung

[comment]: # ({/ee805b92-1a3ec895})

[comment]: # ({c85251c8-f4923ce3})
#### Übersicht

Dieser Abschnitt enthält Beispiele für die Verwendung von Vorverarbeitungsschritten, um einige praktische Aufgaben zu erfüllen.

[comment]: # ({/c85251c8-f4923ce3})

[comment]: # ({22bc082b-6c9dfb09})
#### Filtern von VMware-Ereignisprotokolleinträgen

In diesem Beispiel wird der Vorverarbeitungsschritt [Entspricht regulärem Ausdruck](/manual/config/items/preprocessing#matchesregexp) verwendet, um unnötige Ereignisse aus dem VMware-Ereignisprotokoll zu filtern.

1\. Prüfen Sie auf einem funktionierenden VMware-Hypervisor-Host, dass der Datenpunkt [vmware.eventlog](/manual/vm_monitoring/vmware_keys#vmware.eventlog) vorhanden ist und ordnungsgemäß funktioniert.
Beachten Sie, dass der Datenpunkt für das Ereignisprotokoll auf dem Hypervisor bereits vorhanden sein kann, wenn während der Host-Erstellung eine [VMware](/manual/config/templates_out_of_the_box/vmware)-Vorlage verknüpft wurde.

2\. Erstellen Sie auf dem VMware-Hypervisor-Host einen [abhängigen Datenpunkt](/manual/config/items/itemtypes/dependent_items) vom Typ *Log* und legen Sie den Datenpunkt des Ereignisprotokolls als Master-Datenpunkt fest.

3\. Klicken Sie auf der Registerkarte *Vorverarbeitung* des abhängigen Datenpunkts auf *Hinzufügen*, um einen Vorverarbeitungsschritt zu erstellen, und wählen Sie *Entspricht regulärem Ausdruck* aus der Dropdown-Liste aus. Geben Sie dann eines der folgenden Muster an:

-   Zum Filtern aller Protokollereignisse:

```bash
.* logged in .*
```

-   Zum Filtern von Zeilen, die Benutzernamen nach „User“ enthalten:

```bash
\bUser\s+\K\S+
```

::: noteimportant
Wenn der reguläre Ausdruck nicht übereinstimmt, wird der abhängige Datenpunkt mit einer entsprechenden Fehlermeldung nicht unterstützt.
Um dies zu vermeiden, aktivieren Sie das Kontrollkästchen *Benutzerdefiniert bei Fehler* und wählen Sie eine Option wie das Verwerfen des Werts oder das Setzen eines benutzerdefinierten Werts aus.
Bitte beachten Sie, dass [verworfene](/manual/config/items/preprocessing#discardunchanged) Werte nicht in der Datenbank gespeichert werden; daher werden Auslöser nicht ausgewertet und es werden keine Trenddaten erzeugt.
:::

Alternativ können Sie den Vorverarbeitungsschritt [Regulärer Ausdruck](/manual/config/items/preprocessing#regexp) verwenden, um übereinstimmende Gruppen zu extrahieren und die Ausgabe zu steuern:

-   Um das gesamte Protokollereignis, das „logged in“ enthält, zu extrahieren und auszugeben, geben Sie die folgenden Parameter an:

```bash
Pattern: .*logged in.*
Output: \0
```

-   Um Benutzernamen nach „User“ zu extrahieren und auszugeben:

```bash
Pattern: User (.*?)(?=\ )
Output: \1
```

[comment]: # ({/22bc082b-6c9dfb09})

[comment]: # ({76f2bdd9-100f6359})
#### Überprüfen des Typs des abgerufenen Werts

Dieses Beispiel verwendet den Vorverarbeitungsschritt [Custom multiplier](/manual/config/items/preprocessing#multiplier), um zu prüfen, ob der Typ des abgerufenen Datenpunktwerts numerisch ist.

Wählen Sie auf der Registerkarte *Vorverarbeitung* eines Datenpunkts den Vorverarbeitungsschritt *Custom multiplier* aus und geben Sie den folgenden Parameter an (multipliziert den abgerufenen Wert mit 1):

```bash
1
```

::: noteimportant
Wenn die Vorverarbeitung fehlschlägt (z. B. wenn die Eingabe nicht numerisch ist), wird der Datenpunkt nicht unterstützt und eine entsprechende Fehlermeldung angezeigt.
Um dies zu vermeiden, aktivieren Sie das Kontrollkästchen *Custom on fail* und wählen Sie eine Option wie das Verwerfen des Werts oder das Setzen eines benutzerdefinierten Werts.
Bitte beachten Sie, dass [verworfen](/manual/config/items/preprocessing#discardunchanged) Werte nicht in der Datenbank gespeichert werden; dadurch werden Auslöser nicht ausgewertet und Trenddaten nicht generiert.
:::

[comment]: # ({/76f2bdd9-100f6359})

[comment]: # ({9a28bbf4-5bac90df})
#### Prüfung auf nicht unterstützten Wert

Dieses Beispiel verwendet den Vorverarbeitungsschritt [Prüfung auf nicht unterstützten Wert](/manual/config/items/preprocessing#checkunsupported), um zu prüfen, ob der Datenpunkt-Wert nicht abgerufen werden konnte.

Wenn ein Poller-Prozess von Zabbix Server/Proxy versucht, einen Datenpunkt-Wert zu erfassen, kann er:

-   Ein gültiges Ergebnis zurückgeben.
-   Ein Ergebnis zurückgeben, das zunächst gültig erscheint, aber später nicht unterstützt werden kann (z. B. aufgrund eines Nichtübereinstimmens des Wertetyps nach der Vorverarbeitung).
-   Einen Fehler bei der Erfassung des Werts zurückgeben, wodurch der Datenpunkt nicht unterstützt wird. Häufige Ursachen sind:
    -   Unbekannter Datenpunkt-Schlüssel (für Zabbix Agent, einfache Prüfung oder interne Zabbix-Datenpunkte)
    -   Unbekannte OID (SNMP-Agent), unbekannter Sensor (IPMI-Agent) oder keine JMX-Metrik (JMX-Agent)
    -   Trap-Datei kann nicht gelesen werden (SNMP-Trap)
    -   Skript nicht gefunden (externe Prüfung)
    -   Keine solche URL (HTTP-Agent, Browser)
    -   Anmeldung fehlgeschlagen (SSH-Agent, TELNET-Agent)
    -   Ungültige Formelsyntax (berechnet), JavaScript-Syntaxfehler (Skript) oder ungültiges SQL (Datenbankmonitor)

Um Fehler bei der Erfassung von Datenpunkt-Werten zu erkennen und zu behandeln, können Sie den Vorverarbeitungsschritt *Prüfung auf nicht unterstützten Wert* verwenden.
Beachten Sie, dass dieser Schritt immer zuerst ausgeführt wird und nur Fehler erkennt, die auftreten, bevor die Vorverarbeitung beginnt.

Wählen Sie auf der Registerkarte *Vorverarbeitung* eines Datenpunkts den Vorverarbeitungsschritt *Prüfung auf nicht unterstützten Wert* aus und geben Sie einen der folgenden Parameter an:

-   Für beliebige Fehler:

```bash
Parameter: any error
```

-   Für Fehler, die „cannot connect“ enthalten:

```bash
Parameter: error matches
Pattern: (?i)cannot connect
```

Verwenden Sie dann die Option *Benutzerdefiniert bei Fehler*, um den Wert (in diesem Fall den Fehler) zu verwerfen, einen benutzerdefinierten Wert festzulegen oder eine benutzerdefinierte Fehlermeldung zurückzugeben.
Bitte beachten Sie, dass [verworfene](/manual/config/items/preprocessing#discardunchanged) Werte nicht in der Datenbank gespeichert werden; infolgedessen werden Auslöser nicht ausgewertet und es werden keine Trenddaten erzeugt.

[comment]: # ({/9a28bbf4-5bac90df})
