[comment]: # translation:outdated

[comment]: # ({ee805b92-1a3ec895})
# 3 Przykłady przetwarzania wstępnego

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

[comment]: # ({c85251c8-f4923ce3})
#### Przegląd

W tej sekcji przedstawiono przykłady użycia kroków przetwarzania wstępnego do realizacji niektórych praktycznych zadań.

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

[comment]: # ({22bc082b-6c9dfb09})
#### Filtrowanie rekordów dziennika zdarzeń VMware

Ten przykład wykorzystuje krok przetwarzania wstępnego [Matches regular expression](/manual/config/items/preprocessing#matchesregexp) do odfiltrowania niepotrzebnych zdarzeń z dziennika zdarzeń VMware.

1\. Na działającym hoście VMware Hypervisor sprawdź, czy pozycja [vmware.eventlog](/manual/vm_monitoring/vmware_keys#vmware.eventlog) jest obecna i działa prawidłowo.
Zwróć uwagę, że pozycja dziennika zdarzeń może już być obecna na hypervisorze, jeśli podczas tworzenia hosta został podłączony szablon [VMware](/manual/config/templates_out_of_the_box/vmware).

2\. Na hoście VMware Hypervisor utwórz [pozycję zależną](/manual/config/items/itemtypes/dependent_items) typu *Log* i ustaw pozycję dziennika zdarzeń jako jej pozycję nadrzędną.

3\. Na karcie *Preprocessing* pozycji zależnej kliknij *Add*, aby utworzyć krok przetwarzania wstępnego, i wybierz *Matches regular expression* z listy rozwijanej. Następnie określ jeden z następujących wzorców:

-   Aby filtrować wszystkie zdarzenia dziennika:

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

-   Aby filtrować wiersze zawierające nazwy użytkowników po "User":

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

::: noteimportant
Jeśli wyrażenie regularne nie zostanie dopasowane, pozycja zależna stanie się nieobsługiwana i zostanie wyświetlony odpowiedni komunikat o błędzie.
Aby tego uniknąć, zaznacz pole wyboru *Custom on fail* i wybierz opcję, taką jak odrzucenie wartości lub ustawienie wartości niestandardowej.
Pamiętaj, że wartości [discarded](/manual/config/items/preprocessing#discardunchanged) nie są przechowywane w bazie danych; w rezultacie wyzwalacze nie są oceniane, a dane trendu nie są generowane.
:::

Alternatywnie możesz użyć kroku przetwarzania wstępnego [Regular expression](/manual/config/items/preprocessing#regexp), aby wyodrębnić pasujące grupy i kontrolować dane wyjściowe:

-   Aby wyodrębnić i zwrócić całe zdarzenie dziennika zawierające "logged in", podaj następujące parametry:

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

-   Aby wyodrębnić i zwrócić nazwy użytkowników występujące po "User":

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

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

[comment]: # ({76f2bdd9-9e7a5976})
#### Sprawdzanie typu pobranej wartości

W tym przykładzie użyto kroku przetwarzania wstępnego [Custom multiplier](/manual/config/items/preprocessing#multiplier), aby sprawdzić, czy typ pobranej wartości pozycji jest numeryczny.

Na karcie *Preprocessing* pozycji wybierz krok przetwarzania wstępnego *Custom multiplier* i określ następujący parametr (mnoży pobraną wartość przez 1):

```bash
1
```

::: noteimportant
Jeśli przetwarzanie wstępne zakończy się niepowodzeniem (np. dane wejściowe nie są numeryczne), pozycja stanie się nieobsługiwana i zostanie wyświetlony odpowiedni komunikat o błędzie.
Aby tego uniknąć, zaznacz pole wyboru *Custom on fail* i wybierz opcję, taką jak odrzucenie wartości lub ustawienie wartości niestandardowej.
Należy pamiętać, że wartości [discarded](/manual/config/items/preprocessing#discardunchanged) nie są przechowywane w bazie danych; w rezultacie wyzwalacze nie są oceniane, a dane trendu nie są generowane.
:::

[comment]: # ({/76f2bdd9-9e7a5976})

[comment]: # ({9a28bbf4-5bac90df})
#### Sprawdzanie nieobsługiwanej wartości

Ten przykład wykorzystuje krok preprocessing [Check for not supported value](/manual/config/items/preprocessing#checkunsupported) do sprawdzenia, czy nie udało się pobrać wartości pozycji.

Gdy proces pollera serwera/proxy Zabbix próbuje pobrać wartość pozycji, może:

-   Zwrócić prawidłowy wynik.
-   Zwrócić wynik, który początkowo wydaje się prawidłowy, ale później może stać się nieobsługiwany (np. z powodu niezgodności typu wartości po preprocessing).
-   Zwrócić błąd podczas pobierania wartości, powodując, że pozycja stanie się nieobsługiwana. Typowe przyczyny obejmują:
    -   Nieznany klucz pozycji (dla pozycji Zabbix agent, Simple check lub Zabbix internal)
    -   Nieznany OID (SNMP agent), nieznany sensor (IPMI agent) lub brak metryki JMX (JMX agent)
    -   Nie można odczytać pliku trap (SNMP trap)
    -   Nie znaleziono skryptu (External check)
    -   Taki URL nie istnieje (HTTP agent, Browser)
    -   Logowanie nie powiodło się (SSH agent, TELNET agent)
    -   Nieprawidłowa składnia formuły (Calculated), błąd składni JavaScript (Script) lub nieprawidłowe SQL (Database monitor)

Aby wykrywać i obsługiwać błędy pobierania wartości pozycji, można użyć kroku preprocessing *Check for not supported value*.
Należy pamiętać, że ten krok jest zawsze wykonywany jako pierwszy i wykrywa tylko błędy, które występują przed rozpoczęciem preprocessing.

Na karcie *Preprocessing* pozycji wybierz krok preprocessing *Check for not supported value* i określ jeden z następujących parametrów:

-   Dla dowolnych błędów:

```bash
Parameter: any error
```

-   Dla błędów zawierających "cannot connect":

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

Następnie użyj opcji *Custom on fail*, aby odrzucić wartość (w tym przypadku błąd), ustawić wartość niestandardową lub zwrócić niestandardowy komunikat o błędzie.
Pamiętaj, że wartości [discarded](/manual/config/items/preprocessing#discardunchanged) nie są przechowywane w bazie danych; w rezultacie wyzwalacze nie są obliczane, a dane trendu nie są generowane.

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