[comment]: # translation:outdated

[comment]: # ({ee805b92-1a3ec895})
# 3 Esempi di preprocessing

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

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

Questa sezione presenta esempi di utilizzo dei passaggi di preprocessing per svolgere alcune attività pratiche.

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

[comment]: # ({22bc082b-6c9dfb09})
#### Filtraggio dei record del log eventi VMware

Questo esempio utilizza il passaggio di preprocessing [Matches regular expression](/manual/config/items/preprocessing#matchesregexp) per filtrare gli eventi non necessari dal log eventi VMware.

1\. Su un host VMware Hypervisor funzionante, verificare che l'item [vmware.eventlog](/manual/vm_monitoring/vmware_keys#vmware.eventlog) sia presente e funzioni correttamente.
Si noti che l'item del log eventi potrebbe essere già presente sull'hypervisor se durante la creazione dell'host è stato collegato un template [VMware](/manual/config/templates_out_of_the_box/vmware).

2\. Sull'host VMware Hypervisor, creare un [item dipendente](/manual/config/items/itemtypes/dependent_items) di tipo *Log* e impostare l'item del log eventi come item principale.

3\. Nella scheda *Preprocessing* dell'item dipendente, fare clic su *Add* per creare un passaggio di preprocessing e selezionare *Matches regular expression* dal menu a discesa. Quindi, specificare uno dei seguenti pattern:

-   Per filtrare tutti gli eventi del log:

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

-   Per filtrare le righe che contengono nomi utente dopo "User":

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

::: noteimportant
Se l'espressione regolare non trova corrispondenza, l'item dipendente diventa non supportato con un messaggio di errore corrispondente.
Per evitare questo comportamento, selezionare la casella *Custom on fail* e scegliere un'opzione, ad esempio scartare il valore o impostarne uno personalizzato.
Si noti che i valori [scartati](/manual/config/items/preprocessing#discardunchanged) non vengono memorizzati nel database; di conseguenza, i trigger non vengono valutati e i dati di trend non vengono generati.
:::

In alternativa, è possibile utilizzare il passaggio di preprocessing [Regular expression](/manual/config/items/preprocessing#regexp) per estrarre i gruppi corrispondenti e controllare l'output:

-   Per estrarre e visualizzare l'intero evento del log contenente "logged in", specificare i seguenti parametri:

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

-   Per estrarre e visualizzare i nomi utente che seguono "User":

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

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

[comment]: # ({76f2bdd9-9e7a5976})
#### Verifica del tipo di valore recuperato

Questo esempio utilizza il passaggio di preprocessing [Moltiplicatore personalizzato](/manual/config/items/preprocessing#multiplier) per verificare se il tipo di valore dell'item recuperato è numerico.

Nella scheda *Preprocessing* di un item, seleziona il passaggio di preprocessing *Moltiplicatore personalizzato* e specifica il seguente parametro (moltiplica il valore recuperato per 1):

```bash
1
```

::: noteimportant
Se il preprocessing fallisce (ad esempio, l'input non è numerico), l'item diventa non supportato con un messaggio di errore corrispondente.
Per evitarlo, seleziona la casella *Personalizzato in caso di errore* e scegli un'opzione, ad esempio scartare il valore o impostarne uno personalizzato.
Tieni presente che i valori [scartati](/manual/config/items/preprocessing#discardunchanged) non vengono memorizzati nel database; di conseguenza, i trigger non vengono valutati e i dati di trend non vengono generati.
:::

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

[comment]: # ({9a28bbf4-5bac90df})
#### Verifica del valore non supportato

Questo esempio utilizza il passaggio di preprocessing [Check for not supported value](/manual/config/items/preprocessing#checkunsupported) per verificare se il valore dell'item non può essere recuperato.

Quando un processo poller di Zabbix server/proxy tenta di raccogliere il valore di un item, può:

-   Restituire un risultato valido.
-   Restituire un risultato che inizialmente sembra valido ma che potrebbe diventare non supportato in seguito (ad esempio, a causa di una mancata corrispondenza del tipo di valore dopo il preprocessing).
-   Restituire un errore durante la raccolta del valore, causando il passaggio dell'item a non supportato. Le cause comuni includono:
    -   Chiave item sconosciuta (per Zabbix agent, Simple check o item interni di Zabbix)
    -   OID sconosciuto (SNMP agent), sensore sconosciuto (IPMI agent) o nessuna metrica JMX (JMX agent)
    -   Impossibile leggere il file trap (SNMP trap)
    -   Script non trovato (External check)
    -   URL inesistente (HTTP agent, Browser)
    -   Accesso non riuscito (SSH agent, TELNET agent)
    -   Sintassi della formula non valida (Calculated), errore di sintassi JavaScript (Script) o SQL non valido (Database monitor)

Per rilevare e gestire gli errori nella raccolta dei valori degli item, è possibile utilizzare il passaggio di preprocessing *Check for not supported value*.
Si noti che questo passaggio viene sempre eseguito per primo e rileva solo gli errori che si verificano prima dell'inizio del preprocessing.

Nella scheda *Preprocessing* di un item, selezionare il passaggio di preprocessing *Check for not supported value* e specificare uno dei seguenti parametri:

-   Per qualsiasi errore:

```bash
Parameter: any error
```

-   Per errori contenenti "cannot connect":

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

Quindi, utilizzare l'opzione *Custom on fail* per scartare il valore (in questo caso, l'errore), impostare un valore personalizzato o restituire un messaggio di errore personalizzato.
Si noti che i valori [discarded](/manual/config/items/preprocessing#discardunchanged) non vengono memorizzati nel database; di conseguenza, i trigger non vengono valutati e i dati di trend non vengono generati.

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