5 Macros de découverte de bas niveau

Vue d'ensemble

Il existe un type de macro utilisé dans la fonction découverte de bas niveau (LLD) :

{#MACRO} 

Il s'agit d'une macro utilisée dans une règle LLD qui renvoie les valeurs réelles du nom du système de fichiers, de l'interface réseau, de l'OID SNMP, etc.

Ces macros peuvent être utilisées pour créer des prototypes d'entités (prototypes d'élément, de déclencheur, de graphique, de règle LLD, d'hôte et de groupe d'hôtes). Lors de la découverte de systèmes de fichiers, d'interfaces réseau, de machines virtuelles, etc., ces macros sont remplacées par des valeurs réelles et constituent la base de la création d'entités réelles.

Certaines macros de découverte de bas niveau sont fournies « prêtes à l'emploi » avec la fonction LLD dans Zabbix - {#FSNAME}, {#FSTYPE}, {#IFNAME}, {#SNMPINDEX}, {#SNMPVALUE}. Cependant, il n'est pas obligatoire de respecter ces noms lors de la création d'une règle de découverte de bas niveau personnalisée. Vous pouvez alors utiliser n'importe quel autre nom de macro LLD et faire référence à ce nom.

Types de données pris en charge

Lors de la définition de règles de découverte personnalisées, les valeurs de propriété renvoyées dans les objets JSON pour les macros LLD doivent être de l’un des types primitifs suivants :

  • string
  • number
  • boolean

Les tableaux, les objets et les valeurs null ne sont pas pris en charge. Toute macro LLD faisant référence à une telle valeur ne sera pas développée et apparaîtra littéralement (par ex. '{#MY_MACRO}') lors du prétraitement et de la création des éléments.

Emplacements pris en charge

Les macros LLD peuvent être utilisées :

  • dans le filtre de la règle de découverte de bas niveau
  • dans les règles de découverte de bas niveau imbriquées, dans :
    • les paramètres de prétraitement JSONPath
    • le champ JSONPath pour les macros LLD personnalisées
  • pour les prototypes d’éléments et les prototypes de découverte, dans :
    • le nom
    • les paramètres de clé
    • l’unité
    • l’intervalle de mise à jour1
    • le délai d’expiration1
    • la période de stockage de l’historique1
    • la période de stockage des tendances1
    • les étapes de prétraitement de la valeur de l’élément
    • l’OID SNMP
    • le champ du capteur IPMI
    • l’expression d’élément calculé/agrégé, dans :
      • les constantes d’expression et les paramètres de fonction
      • les paramètres de clé d’élément
    • les conditions de filtre d’élément agrégé (nom du groupe d’hôtes et nom du tag)
    • le script SSH et le script Telnet
    • la requête SQL de supervision de base de données
    • le champ de point de terminaison de l’élément JMX
    • la description
    • le champ URL de l’agent HTTP
    • le champ des champs de requête HTTP de l’agent HTTP
    • le champ du corps de requête de l’agent HTTP
    • le champ des codes d’état requis de l’agent HTTP
    • la clé et la valeur du champ des en-têtes de l’agent HTTP
    • le champ du nom d’utilisateur d’authentification HTTP de l’agent HTTP
    • le champ du mot de passe d’authentification HTTP de l’agent HTTP
    • le champ du proxy HTTP de l’agent HTTP
    • le champ du fichier de certificat SSL HTTP de l’agent HTTP
    • le champ du fichier de clé SSL HTTP de l’agent HTTP
    • le champ du mot de passe de clé SSL HTTP de l’agent HTTP
    • les tags
  • pour les prototypes de déclencheur, dans :
    • le nom
    • les données opérationnelles
    • l’expression (uniquement dans les constantes et les paramètres de fonction)
    • l’URL
    • la description
    • les tags
  • pour les prototypes de graphique, dans :
    • le nom
  • pour les prototypes d’hôte, dans :
    • le nom
    • le nom visible
    • les champs d’interface personnalisés : IP, DNS, port, communauté SNMP v1/v2, nom de contexte SNMP v3, nom de sécurité SNMP v3, phrase secrète d’authentification SNMP v3, phrase secrète de confidentialité SNMP v3
    • le nom du prototype de groupe d’hôtes
    • la valeur du tag d’hôte
    • la valeur de la macro d’hôte
    • (voir la liste complète)

Dans tous ces emplacements, à l’exception du filtre de la règle de découverte de bas niveau, les macros LLD peuvent être utilisées à l’intérieur d’un contexte de macro utilisateur statique.

Utilisation des fonctions de macro

Les fonctions de macro sont prises en charge avec les macros de découverte de bas niveau, sauf dans le filtre de la règle de découverte de bas niveau, ce qui permet d’extraire une certaine partie de la valeur de la macro à l’aide d’une expression régulière.

Par exemple, vous pouvez vouloir extraire le nom du client et le numéro d’interface à partir de la macro LLD suivante à des fins de marquage des événements :

{#IFALIAS}=customername_1

Pour ce faire, la fonction de macro regsub peut être utilisée avec la macro dans le champ de valeur du tag d’événement d’un prototype de déclencheur :

Notez que les virgules ne sont pas autorisées dans les paramètres de clé d’élément non entre guillemets ; le paramètre contenant une fonction de macro doit donc être placé entre guillemets. Le caractère antislash (\) doit être utilisé pour échapper les guillemets doubles à l’intérieur du paramètre. Exemple :

net.if.in["{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}",bytes]

Pour plus d’informations sur la syntaxe des fonctions de macro, voir : Fonctions de macro

Les fonctions de macro sont prises en charge dans les macros de découverte de bas niveau depuis Zabbix 4.0.

Notes de bas de page

1 Dans les champs marqués avec 1, une seule macro doit remplir l’intégralité du champ. Plusieurs macros dans un champ ou des macros mélangées avec du texte ne sont pas prises en charge.