2 Prétraitement de la valeur de l'élément

Aperçu

Le prétraitement vous permet d’appliquer des transformations aux valeurs d’élément reçues avant leur enregistrement dans la base de données. Ces transformations/étapes de prétraitement sont effectuées par le serveur Zabbix ou le proxy (si les éléments sont surveillés par un proxy).

Cette fonctionnalité prend en charge divers cas d’utilisation, tels que :

  • convertir des octets en bits (par exemple, multiplier les valeurs du trafic réseau par « 8 ») ;
  • calculer des statistiques par seconde pour des valeurs augmentant de manière incrémentielle ;
  • appliquer des expressions régulières pour extraire ou modifier des valeurs ;
  • exécuter des scripts personnalisés sur les valeurs ;
  • ignorer les valeurs inchangées afin d’optimiser le stockage dans la base de données.

Une ou plusieurs étapes de prétraitement peuvent être configurées pour un élément. Ces étapes sont exécutées dans l’ordre dans lequel elles sont configurées.

Si une étape de prétraitement échoue, un élément devient non pris en charge. Cela peut être évité grâce à la gestion des erreurs Custom on fail (disponible pour la plupart des transformations), qui permet d’ignorer des valeurs ou de définir des valeurs personnalisées.

Pour les éléments de journal, les métadonnées du journal (sans valeur) réinitialisent toujours l’état non pris en charge de l’élément, le rendant à nouveau pris en charge. Cela se produit même si l’erreur initiale s’est produite après la réception d’une valeur de journal provenant de l’agent.

Toutes les valeurs transmises au prétraitement sont initialement traitées comme des chaînes de caractères. La conversion vers le type de valeur souhaité (tel que défini dans la configuration de l’élément) est effectuée à la fin du pipeline de prétraitement. Cependant, certaines étapes de prétraitement peuvent déclencher des conversions plus tôt, si nécessaire. Pour des informations techniques détaillées, voir Détails du prétraitement.

Pour vous assurer que votre configuration de prétraitement fonctionne comme prévu, vous pouvez la tester.

Voir aussi : Exemples de prétraitement

Configuration

Les étapes de prétraitement sont définies dans l’onglet Prétraitement du formulaire de configuration de l’élément.

Cliquez sur Ajouter pour sélectionner une transformation prise en charge.

Le champ Type d’information s’affiche en bas de l’onglet lorsqu’au moins une étape de prétraitement est définie. Si nécessaire, il est possible de modifier le type d’information sans quitter l’onglet Prétraitement. Voir Création d’un élément pour une description détaillée des paramètres.

Transformations prises en charge

Toutes les transformations prises en charge sont listées ci-dessous. Cliquez sur le nom de la transformation pour en voir tous les détails.

Nom Description Type
Expression régulière Faire correspondre la valeur à l'expression régulière et la remplacer par la sortie requise. Texte
Remplacer Rechercher la chaîne à trouver et la remplacer par une autre (ou par rien).
Supprimer les caractères en début et fin Supprimer les caractères spécifiés au début et à la fin de la valeur.
Supprimer les caractères à droite Supprimer les caractères spécifiés à la fin de la valeur.
Supprimer les caractères à gauche Supprimer les caractères spécifiés au début de la valeur.
XML XPath Extraire une valeur ou un fragment à partir de données XML à l'aide de la fonctionnalité XPath. Données structurées
JSON Path Extraire une valeur ou un fragment à partir de données JSON à l'aide de la fonctionnalité JSONPath.
CSV vers JSON Convertir les données d'un fichier CSV au format JSON.
XML vers JSON Convertir des données au format XML en JSON.
Valeur SNMP walk Extraire une valeur à l'aide du nom OID/MIB spécifié et appliquer des options de formatage. SNMP
SNMP walk vers JSON Convertir les valeurs SNMP en JSON.
Valeur SNMP get Appliquer des options de formatage à la valeur SNMP get.
Multiplicateur personnalisé Multiplier la valeur par la valeur entière ou à virgule flottante spécifiée. Arithmétique
Changement simple Calculer la différence entre la valeur actuelle et la valeur précédente. Changement
Changement par seconde Calculer la vitesse de changement par seconde de la valeur (différence entre la valeur actuelle et la valeur précédente).
Booléen vers décimal Convertir la valeur du format booléen au format décimal. Systèmes de numération
Octal vers décimal Convertir la valeur du format octal au format décimal.
Hexadécimal vers décimal Convertir la valeur du format hexadécimal au format décimal.
JavaScript Saisir du code JavaScript. Scripts personnalisés
Dans l'intervalle Définir un intervalle dans lequel une valeur doit se trouver. Validation
Correspond à l'expression régulière Spécifier une expression régulière à laquelle une valeur doit correspondre.
Ne correspond pas à l'expression régulière Spécifier une expression régulière à laquelle une valeur ne doit pas correspondre.
Vérifier une erreur dans JSON Vérifier un message d'erreur au niveau de l'application situé à JSONPath.
Vérifier une erreur dans XML Vérifier un message d'erreur au niveau de l'application situé à XPath.
Vérifier une erreur à l'aide d'une expression régulière Vérifier un message d'erreur au niveau de l'application à l'aide d'une expression régulière.
Vérifier une valeur non prise en charge Vérifier si aucune valeur d'élément n'a pu être récupérée.
Ignorer si inchangé Ignorer une valeur si elle n'a pas changé. Limitation
Ignorer si inchangé avec heartbeat Ignorer une valeur si elle n'a pas changé pendant la période définie.
Motif Prometheus Utiliser la requête suivante pour extraire les données requises à partir des métriques Prometheus. Prometheus
Prometheus vers JSON Convertir les métriques Prometheus requises en JSON.

Notez que pour les étapes de prétraitement Changement et Limitation, Zabbix doit mémoriser la dernière valeur afin de calculer/comparer la nouvelle valeur selon les besoins. Ces valeurs précédentes sont gérées par le gestionnaire de prétraitement. Si le serveur ou le proxy Zabbix est redémarré, ou si une modification est apportée aux étapes de prétraitement, la dernière valeur de l'élément correspondant est réinitialisée, ce qui entraîne :

  • pour les étapes Changement simple et Changement par seconde - la valeur suivante sera ignorée, car il n'existe aucune valeur précédente à partir de laquelle calculer le changement ;
  • pour les étapes Ignorer si inchangé et Ignorer si inchangé avec heartbeat - la valeur suivante ne sera jamais ignorée, même si elle aurait dû l'être en raison des règles d'ignorance.
Expression régulière

Faites correspondre la valeur à l'expression régulière et remplacez-la par la sortie requise.

Paramètres :

  • pattern - l'expression régulière ;
  • output - le modèle de formatage de sortie. Une séquence d'échappement \N (où N=1…9) est remplacée par le Nième groupe correspondant. Une séquence d'échappement \0 est remplacée par le texte correspondant.

Commentaires :

  • Si la valeur d'entrée ne correspond pas, l'élément deviendra non pris en charge ;
  • L'expression régulière prend en charge l'extraction d'un maximum de 10 groupes capturés avec la séquence \N ;
  • Si vous cochez la case Custom on fail, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d'erreur spécifié. En cas d'échec d'une étape de prétraitement, l'élément ne deviendra pas non pris en charge si l'option permettant d'ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.
  • Veuillez consulter la section expressions régulières pour voir quelques exemples existants.
Remplacer

Recherchez la chaîne de recherche et remplacez-la par une autre (ou par rien).

Paramètres :

  • chaîne de recherche - la chaîne à rechercher et à remplacer, sensible à la casse (obligatoire) ;
  • remplacement - la chaîne qui remplacera la chaîne de recherche. La chaîne de remplacement peut également être vide, ce qui permet effectivement de supprimer la chaîne de recherche lorsqu’elle est trouvée.

Commentaires :

  • Toutes les occurrences de la chaîne de recherche seront remplacées ;
  • Il est possible d’utiliser des séquences d’échappement pour rechercher ou remplacer des sauts de ligne, retours chariot, tabulations et espaces "\n \r \t \s" ; l’antislash peut être échappé sous la forme "\\" et les séquences d’échappement peuvent être échappées sous la forme "\\n" ;
  • L’échappement des sauts de ligne, retours chariot et tabulations est effectué automatiquement lors de la découverte de bas niveau.
Supprimer

Supprime les caractères spécifiés au début et à la fin de la valeur.

Suppression à droite

Supprime les caractères spécifiés à la fin de la valeur.

Suppression à gauche

Supprime les caractères spécifiés du début de la valeur.

XML XPath

Extraire une valeur ou un fragment à partir de données XML à l’aide de la fonctionnalité XPath.

Commentaires :

  • Pour que cette option fonctionne, le serveur Zabbix (ou le proxy Zabbix) doit être compilé avec la prise en charge de libxml;
  • Les espaces de noms ne sont pas pris en charge;
  • Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec d’une étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option consistant à ignorer la valeur ou à définir une valeur spécifiée est sélectionnée.

Exemples :

number(/document/item/value) #extraira '10' de <document><item><value>10</value></item></document>
number(/document/item/@attribute) #extraira '10' de <document><item attribute="10"></item></document>
/document/item #extraira '<item><value>10</value></item>' de <document><item><value>10</value></item></document>
Chemin JSON

Extraire une valeur ou un fragment à partir de données JSON à l’aide de la fonctionnalité JSONPath.

Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec d’une étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option permettant d’ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.

CSV vers JSON

Convertissez les données d’un fichier CSV au format JSON.

Pour plus d’informations, voir : prétraitement CSV vers JSON.

XML en JSON

Convertissez les données au format XML en JSON.

Pour plus d'informations, voir : Règles de sérialisation.

Si vous cochez la case Custom on fail, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d'erreur spécifié. En cas d'échec d'une étape de prétraitement, l'élément ne deviendra pas non pris en charge si l'option permettant d'ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.

Valeur SNMP walk

Extraire la valeur par le nom OID/MIB spécifié et appliquer les options de formatage :

  • Inchangée - renvoyer la chaîne hexadécimale comme une chaîne hexadécimale non échappée (notez que les indications d’affichage sont toujours appliquées) ;
  • UTF-8 à partir de hex-STRING - convertir la chaîne hexadécimale en chaîne UTF-8 ;
  • MAC à partir de hex-STRING - valider la chaîne hexadécimale en tant qu’adresse MAC et renvoyer une chaîne d’adresse MAC correcte (où les ' ' sont remplacés par ':') ;
  • Entier à partir de BITS - convertir les 8 premiers octets d’une chaîne de bits exprimée comme une séquence de caractères hexadécimaux (par exemple, "1A 2B 3C 4D") en un entier non signé de 64 bits. Dans les chaînes de bits de plus de 8 octets, les octets suivants seront ignorés.

Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec d’une étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option d’ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.

Conversion SNMP walk en JSON

Convertissez les valeurs SNMP en JSON.

Spécifiez un nom de champ dans le JSON et le chemin OID SNMP correspondant. Les valeurs des champs seront renseignées à partir des valeurs du chemin OID SNMP spécifié.

Commentaires :

  • Des options de formatage des valeurs similaires à celles de l’étape Valeur SNMP walk sont disponibles;
  • Vous pouvez utiliser cette étape de prétraitement pour la découverte des OID SNMP;
  • Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec d’une étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option permettant d’ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.
Valeur obtenue par SNMP

Appliquez des options de formatage à la valeur obtenue par SNMP :

  • UTF-8 à partir de Hex-STRING - convertit une chaîne hexadécimale en chaîne UTF-8 ;
  • MAC à partir de Hex-STRING - valide une chaîne hexadécimale en tant qu’adresse MAC et renvoie une chaîne d’adresse MAC correcte (où les ' ' sont remplacés par ':') ;
  • Entier à partir de BITS - convertit les 8 premiers octets d’une chaîne de bits exprimée comme une séquence de caractères hexadécimaux (par exemple, "1A 2B 3C 4D") en un entier non signé de 64 bits. Dans les chaînes de bits de plus de 8 octets, les octets suivants seront ignorés.

Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec d’une étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option permettant d’ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.

Multiplicateur personnalisé

Multipliez la valeur par la valeur entière ou à virgule flottante spécifiée.

Commentaires :

  • Utilisez cette option pour convertir les valeurs reçues en KB, MBps, etc., en B, Bps. Sinon, Zabbix ne peut pas définir correctement les préfixes (K, M, G, etc.).
  • Notez que si le type d'information de l'élément est Numérique (non signé), les valeurs entrantes comportant une partie fractionnaire seront tronquées (c'est-à-dire que « 0.9 » deviendra « 0 ») avant l'application du multiplicateur personnalisé ;
  • Si vous utilisez un multiplicateur personnalisé ou stockez la valeur comme Changement par seconde pour des éléments dont le type d'information est défini sur Numérique (non signé) et que la valeur calculée résultante est en réalité un nombre à virgule flottante, la valeur calculée est tout de même acceptée comme correcte en tronquant la partie décimale et en stockant la valeur comme un entier ;
  • Pris en charge : notation scientifique, par exemple 1e+70 ; macros utilisateur et macros LLD ; chaînes incluant des macros, par exemple {#MACRO}e+10, {$MACRO1}e+{$MACRO2}. Les macros doivent être résolues en un entier ou un nombre à virgule flottante.
  • Si vous cochez la case Personnalisé en cas d'échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d'erreur spécifié. En cas d'échec d'une étape de prétraitement, l'élément ne deviendra pas non pris en charge si l'option d'ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.
Changement simple

Calcule la différence entre la valeur actuelle et la valeur précédente.

Commentaires :

  • Cette étape peut être utile pour mesurer une valeur en augmentation constante;
  • Évalué comme value-prev_value, où value est la valeur actuelle ; prev_value est la valeur précédemment reçue;
  • Une seule opération de changement par élément (« Changement simple » ou « Changement par seconde ») est autorisée ;
  • Si la valeur actuelle est inférieure à la valeur précédente, Zabbix ignore cette différence (ne stocke rien) et attend une autre valeur;
  • Si vous cochez la case Custom on fail, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec d’une étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option permettant d’ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.
Variation par seconde

Calcule la vitesse de variation de la valeur (différence entre la valeur actuelle et la valeur précédente) par seconde.

Commentaires :

  • Cette étape est utile pour calculer la vitesse par seconde d’une valeur en augmentation constante ;
  • Comme ce calcul peut produire des nombres à virgule flottante, il est recommandé de définir le « Type d'information » sur Numérique (flottant), même si les valeurs brutes entrantes sont des entiers. Cela est particulièrement pertinent pour les petits nombres où la partie décimale est importante. Si les valeurs à virgule flottante sont grandes et peuvent dépasser la longueur du champ « float », auquel cas la valeur entière peut être perdue, il est en fait recommandé d’utiliser Numérique (non signé) et ainsi de ne tronquer que la partie décimale.
  • Évalué comme (value-prev_value)/(time-prev_time), où value est la valeur actuelle ; prev_value est la valeur reçue précédemment ; time est l’horodatage actuel ; prev_time est l’horodatage de la valeur précédente ;
  • Une seule opération de variation par élément (« Changement simple » ou « Variation par seconde ») est autorisée ;
  • Si la valeur actuelle est inférieure à la valeur précédente, Zabbix ignore cette différence (ne stocke rien) et attend une autre valeur. Cela permet de fonctionner correctement, par exemple, avec un retour à zéro (débordement) des compteurs SNMP 32 bits.
  • Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec d’une étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option consistant à ignorer la valeur ou à définir une valeur spécifiée est sélectionnée.
Booléen en décimal

Convertit la valeur du format booléen en décimal.

Commentaires :

  • La représentation textuelle est convertie en 0 ou 1. Ainsi, « TRUE » est stocké comme 1 et « FALSE » est stocké comme 0. Toutes les valeurs sont mises en correspondance sans tenir compte de la casse. Les valeurs actuellement reconnues sont, pour TRUE : true, t, yes, y, on, up, running, enabled, available, ok, master ; pour FALSE : false, f, no, n, off, down, unused, disabled, unavailable, err, slave. De plus, toute valeur numérique non nulle est considérée comme TRUE et zéro est considéré comme FALSE.
  • Si vous cochez la case Custom on fail, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec d’une étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option permettant d’ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.
Octal en décimal

Convertit la valeur du format octal en décimal.

Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec d’une étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option consistant à ignorer la valeur ou à définir une valeur spécifiée est sélectionnée.

Hexadécimal vers décimal

Convertit la valeur du format hexadécimal en décimal.

Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec d’une étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option permettant d’ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.

JavaScript

Saisissez le code JavaScript dans l’éditeur modal qui s’ouvre lorsque vous cliquez dans le champ du paramètre ou sur l’icône en forme de crayon à côté.

N’utilisez pas d’affectations non déclarées dans le prétraitement JavaScript. Utilisez var pour déclarer les variables locales.

Commentaires :

Dans la plage

Définissez une plage dans laquelle une valeur doit se trouver en indiquant des valeurs minimale/maximale (incluses).

Commentaires :

  • Les valeurs numériques sont acceptées (y compris n’importe quel nombre de chiffres, une partie décimale facultative et une partie exponentielle facultative, ainsi que les valeurs négatives) ;
  • La valeur minimale doit être inférieure à la valeur maximale ;
  • Au moins une valeur doit être présente ;
  • Les macros utilisateur et les macros de découverte de bas niveau peuvent être utilisées ;
  • Si vous cochez la case Custom on fail, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec d’une étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option permettant d’ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.
Correspond à l'expression régulière

Spécifiez une expression régulière à laquelle une valeur doit correspondre.

Si vous cochez la case Personnalisé en cas d'échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d'erreur spécifié. En cas d'échec d'une étape de prétraitement, l'élément ne deviendra pas non pris en charge si l'option permettant d'ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.

Ne correspond pas à l'expression régulière

Spécifiez une expression régulière à laquelle une valeur ne doit pas correspondre.

Si vous cochez la case Personnalisé en cas d'échec, il est possible de définir des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d'erreur spécifié. En cas d'échec d'une étape de prétraitement, l'élément ne deviendra pas non pris en charge si l'option d'ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.

Vérifier une erreur dans JSON

Vérifiez la présence d’un message d’erreur au niveau de l’application situé à l’emplacement JSONPath. Arrêtez le traitement en cas de succès et si le message n’est pas vide ; sinon, poursuivez le traitement avec la valeur qui précédait cette étape de prétraitement.

Commentaires :

  • Ces erreurs de service externe sont signalées à l’utilisateur telles quelles, sans ajout d’informations sur l’étape de prétraitement ;
  • Aucune erreur ne sera signalée en cas d’échec de l’analyse d’un JSON invalide ;
  • Si vous cochez la case Custom on fail, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec d’une étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option consistant à ignorer la valeur ou à définir une valeur spécifiée est sélectionnée.
Vérifier la présence d’une erreur dans le XML

Vérifiez la présence d’un message d’erreur au niveau de l’application situé à l’emplacement XPath. Arrêtez le traitement en cas de succès et si le message n’est pas vide ; sinon, poursuivez le traitement avec la valeur qui précédait cette étape de prétraitement.

Commentaires :

  • Ces erreurs de service externes sont signalées à l’utilisateur telles quelles, sans ajout d’informations sur l’étape de prétraitement ;
  • Aucune erreur ne sera signalée en cas d’échec de l’analyse d’un XML non valide ;
  • Si vous cochez la case Personnalisé en cas d’échec, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec d’une étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option permettant d’ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.
Vérifier une erreur à l’aide d’une expression régulière

Vérifiez la présence d’un message d’erreur au niveau de l’application à l’aide d’une expression régulière. Arrêtez le traitement en cas de succès et si le message n’est pas vide ; sinon, poursuivez le traitement avec la valeur qui précédait cette étape de prétraitement.

Paramètres :

  • pattern - l’expression régulière ;
  • output - le modèle de formatage de sortie. Une séquence d’échappement \N (où N=1…9) est remplacée par le Nième groupe correspondant. Une séquence d’échappement \0 est remplacée par le texte correspondant.

Commentaires :

  • Ces erreurs de service externe sont signalées à l’utilisateur telles quelles, sans ajout d’informations sur l’étape de prétraitement ;
  • Si vous cochez la case Custom on fail, il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec d’une étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option permettant d’ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.
Vérifier une valeur non prise en charge

Vérifiez si aucune valeur d’élément n’a pu être récupérée. Indiquez comment l’échec doit être traité, en vous basant sur l’inspection du message d’erreur renvoyé.

Paramètres :

  • scope - sélectionnez la portée du traitement des erreurs :
    toute erreur - toute erreur ;
    l’erreur correspond - uniquement l’erreur qui correspond à l’expression régulière spécifiée dans pattern ;
    l’erreur ne correspond pas - uniquement l’erreur qui ne correspond pas à l’expression régulière spécifiée dans pattern
  • pattern - l’expression régulière à faire correspondre à l’erreur. Si toute erreur est sélectionné dans le paramètre scope, ce champ n’est pas affiché. S’il est affiché, ce champ est obligatoire.

Commentaires :

  • Normalement, l’absence/l’échec de récupération d’une valeur entraînerait le passage de l’élément à l’état non pris en charge. Cette étape de prétraitement vous permet de modifier ce comportement. Si vous cochez la case Custom on fail (toujours cochée et grisée pour cette étape de prétraitement), il est possible de spécifier des options personnalisées de gestion des erreurs : soit ignorer la valeur, définir une valeur spécifiée ou définir un message d’erreur spécifié. En cas d’échec de l’étape de prétraitement, l’élément ne deviendra pas non pris en charge si l’option d’ignorer la valeur ou de définir une valeur spécifiée est sélectionnée.
  • Cette étape de prétraitement vérifie uniquement si aucune valeur d’élément n’a pu être récupérée. Elle ne vérifie pas, par exemple, si le type de la valeur récupérée (par ex. chaîne) correspond au type d’information de l’élément (par ex. numérique) ; pour plus de détails, voir Exemples de prétraitement. En cas d’incompatibilité de type, l’élément peut tout de même devenir non pris en charge après l’exécution de toutes les étapes de prétraitement. Pour vérifier une incompatibilité de type, vous pouvez utiliser, par exemple, l’étape de prétraitement Custom multiplier ; voir Exemples de prétraitement.
  • La capture de groupes d’expressions régulières est prise en charge dans les champs Set value to ou Set error to. Utilisez \N (où N=1…9) pour récupérer le Nième groupe correspondant ; utilisez \0 pour récupérer le texte correspondant ;
  • Ces étapes sont toujours exécutées en premier parmi les étapes de prétraitement et sont placées au-dessus de toutes les autres après l’enregistrement des modifications de l’élément ;
  • Plusieurs étapes Check for not supported value sont prises en charge, dans l’ordre spécifié. Une étape pour toute erreur sera automatiquement placée comme dernière étape de ce groupe.
Ignorer les valeurs inchangées

Ignorer une valeur si elle n’a pas changé.

Commentaires :

  • Si une valeur est ignorée, elle n’est pas enregistrée dans la base de données et le serveur Zabbix n’a aucune connaissance de la réception de cette valeur. Aucune expression de déclencheur ne sera évaluée ; par conséquent, aucun problème pour les déclencheurs associés ne sera créé/résolu. Les fonctions ne fonctionneront qu’en se basant sur les données réellement enregistrées dans la base de données. Comme les tendances sont construites à partir des données de la base de données, si aucune valeur n’est enregistrée pendant une heure, il n’y aura pas non plus de données de tendances pour cette heure.
  • Une seule option de limitation peut être spécifiée par élément.
Ignorer les valeurs inchangées avec pulsation

Ignorer une valeur si elle n’a pas changé pendant la période définie (en secondes).

Commentaires :

  • Les valeurs entières positives sont prises en charge pour spécifier les secondes (minimum : 1 seconde) ;
  • Des suffixes de temps peuvent être utilisés (par ex., 30s, 1m, 2h, 1d) ;
  • Les macros utilisateur et les macros de découverte de bas niveau peuvent être utilisées ;
  • Si une valeur est ignorée, elle n’est pas enregistrée dans la base de données et le serveur Zabbix n’a aucune connaissance de la réception de cette valeur. Aucune expression de déclencheur ne sera évaluée et, par conséquent, aucun problème pour les déclencheurs associés ne sera créé/résolu. Les fonctions ne fonctionneront qu’à partir des données réellement enregistrées dans la base de données. Comme les tendances sont construites à partir des données de la base de données, si aucune valeur n’est enregistrée pendant une heure, il n’y aura pas non plus de données de tendance pour cette heure.
  • Une seule option de limitation peut être spécifiée par élément.
Modèle Prometheus

Utilisez la requête suivante pour extraire les données requises des métriques Prometheus.

Voir les contrôles Prometheus pour plus de détails.

Prometheus vers JSON

Convertissez les métriques Prometheus requises en JSON.

Voir les contrôles Prometheus pour plus de détails.

Prise en charge des macros

Les macros utilisateur et les macros utilisateur avec contexte sont prises en charge dans :

  • les paramètres des étapes de prétraitement, y compris le code JavaScript ;
  • les paramètres personnalisés de gestion des erreurs (champs Définir la valeur sur et Définir l’erreur sur).

Le contexte de la macro est ignoré lorsqu’une macro est remplacée par sa valeur. La valeur de la macro est insérée dans le code telle quelle ; il n’est pas possible d’ajouter un échappement supplémentaire avant de placer la valeur dans le code JavaScript. Veuillez noter que cela peut, dans certains cas, provoquer des erreurs JavaScript.

Test

Voir le test du prétraitement.