3 Exemples de prétraitement
Aperçu
Cette section présente des exemples d’utilisation des étapes de prétraitement pour accomplir certaines tâches pratiques.
Filtrage des enregistrements du journal des événements VMware
Cet exemple utilise l’étape de prétraitement Correspond à l’expression régulière 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 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 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 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 :
.* logged in .*
- Pour filtrer les lignes contenant des noms d’utilisateur après « User » :
\bUser\s+\K\S+
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 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 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 :
Pattern: .*logged in.*
Output: \0
- Pour extraire et afficher les noms d’utilisateur suivant « User » :
Pattern: User (.*?)(?=\ )
Output: \1
Vérification du type de la valeur récupérée
Cet exemple utilise l’étape de prétraitement Multiplicateur personnalisé 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) :
1
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 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.
Vérification d'une valeur non prise en charge
Cet exemple utilise l'étape de prétraitement Check for not supported value 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 :
Parameter: any error
- Pour les erreurs contenant "cannot connect" :
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 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.