[comment]: # translation:outdated

[comment]: # ({ee805b92-1a3ec895})
# 3 Exemples de prétraitement

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

[comment]: # ({c85251c8-f4923ce3})
#### Aperçu

Cette section présente des exemples d’utilisation des étapes de prétraitement pour accomplir certaines tâches pratiques.

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

[comment]: # ({22bc082b-6c9dfb09})
#### Filtrage des enregistrements du journal des événements VMware

Cet exemple utilise l’étape de prétraitement [Correspond à l’expression régulière](/manual/config/items/preprocessing#matchesregexp) pour filtrer les événements inutiles du journal des événements VMware.

1\. Sur un hôte VMware Hypervisor fonctionnel, vérifiez que l’élément [vmware.eventlog](/manual/vm_monitoring/vmware_keys#vmware.eventlog) est présent et fonctionne correctement.
Notez que l’élément de journal des événements peut déjà être présent sur l’hyperviseur si un modèle [VMware](/manual/config/templates_out_of_the_box/vmware) a été lié lors de la création de l’hôte.

2\. Sur l’hôte VMware Hypervisor, créez un [élément dépendant](/manual/config/items/itemtypes/dependent_items) de type *Log* et définissez l’élément de journal des événements comme son élément maître.

3\. Dans l’onglet *Prétraitement* de l’élément dépendant, cliquez sur *Ajouter* pour créer une étape de prétraitement et sélectionnez *Correspond à l’expression régulière* dans la liste déroulante. Ensuite, indiquez l’un des motifs suivants :

-   Pour filtrer tous les événements du journal :

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

-   Pour filtrer les lignes contenant des noms d’utilisateur après « User » :

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

::: noteimportant
Si l’expression régulière ne correspond pas, l’élément dépendant devient non pris en charge avec un message d’erreur correspondant.
Pour éviter cela, cochez la case *Personnalisé en cas d’échec* et sélectionnez une option telle que l’abandon de la valeur ou la définition d’une valeur personnalisée.
Veuillez noter que les valeurs [ignorées](/manual/config/items/preprocessing#discardunchanged) ne sont pas stockées dans la base de données ; par conséquent, les déclencheurs ne sont pas évalués et les données de tendance ne sont pas générées.
:::

Vous pouvez également utiliser l’étape de prétraitement [Expression régulière](/manual/config/items/preprocessing#regexp) pour extraire les groupes correspondants et contrôler la sortie :

-   Pour extraire et afficher l’intégralité de l’événement du journal contenant « logged in », indiquez les paramètres suivants :

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

-   Pour extraire et afficher les noms d’utilisateur suivant « User » :

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

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

[comment]: # ({76f2bdd9-9e7a5976})
#### Vérification du type de la valeur récupérée

Cet exemple utilise l’étape de prétraitement [Multiplicateur personnalisé](/manual/config/items/preprocessing#multiplier) pour vérifier si le type de la valeur de l’élément récupérée est numérique.

Dans l’onglet *Prétraitement* d’un élément, sélectionnez l’étape de prétraitement *Multiplicateur personnalisé* et indiquez le paramètre suivant (multiplie la valeur récupérée par 1) :

```bash
1
```

::: noteimportant
Si le prétraitement échoue (par exemple, si l’entrée n’est pas numérique), l’élément devient non pris en charge avec un message d’erreur correspondant.
Pour éviter cela, cochez la case *Personnalisé en cas d’échec* et sélectionnez une option telle que l’abandon de la valeur ou la définition d’une valeur personnalisée.
Veuillez noter que les valeurs [ignorées](/manual/config/items/preprocessing#discardunchanged) ne sont pas stockées dans la base de données ; par conséquent, les déclencheurs ne sont pas évalués et les données de tendance ne sont pas générées.
:::

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

[comment]: # ({9a28bbf4-5bac90df})
#### Vérification d'une valeur non prise en charge

Cet exemple utilise l'étape de prétraitement [Check for not supported value](/manual/config/items/preprocessing#checkunsupported) pour vérifier si la valeur de l'élément n'a pas pu être récupérée.

Lorsqu'un processus poller du serveur/proxy Zabbix tente de collecter une valeur d'élément, il peut :

-   Renvoyer un résultat valide.
-   Renvoyer un résultat qui semble initialement valide, mais qui peut devenir non pris en charge plus tard (par exemple, en raison d'une incompatibilité de type de valeur après le prétraitement).
-   Renvoyer une erreur lors de la collecte de la valeur, ce qui fait que l'élément devient non pris en charge. Les causes courantes incluent :
    -   Clé d'élément inconnue (pour les éléments Zabbix agent, Simple check ou Zabbix internal)
    -   OID inconnu (agent SNMP), capteur inconnu (agent IPMI) ou absence de métrique JMX (agent JMX)
    -   Impossible de lire le fichier de trap (SNMP trap)
    -   Script introuvable (External check)
    -   URL inexistante (HTTP agent, Browser)
    -   Échec de la connexion (SSH agent, TELNET agent)
    -   Syntaxe de formule invalide (Calculated), erreur de syntaxe JavaScript (Script) ou SQL invalide (Database monitor)

Pour détecter et gérer les erreurs de collecte des valeurs d'élément, vous pouvez utiliser l'étape de prétraitement *Check for not supported value*.
Notez que cette étape est toujours exécutée en premier et ne détecte que les erreurs qui se produisent avant le début du prétraitement.

Dans l'onglet *Preprocessing* d'un élément, sélectionnez l'étape de prétraitement *Check for not supported value* et spécifiez l'un des paramètres suivants :

-   Pour toute erreur :

```bash
Parameter: any error
```

-   Pour les erreurs contenant "cannot connect" :

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

Ensuite, utilisez l'option *Custom on fail* pour ignorer la valeur (dans ce cas, l'erreur), définir une valeur personnalisée ou renvoyer un message d'erreur personnalisé.
Veuillez noter que les valeurs [discarded](/manual/config/items/preprocessing#discardunchanged) ne sont pas stockées dans la base de données ; par conséquent, les déclencheurs ne sont pas évalués et les données de tendance ne sont pas générées.

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