[comment]: # ({c176fd71-2d9d6e33})
# 5 Macros de découverte de bas niveau

[comment]: # ({/c176fd71-2d9d6e33})

[comment]: # ({210528fe-bb12a85a})
#### Aperçu

Il existe un type de macro utilisé dans la fonction de [découverte de bas niveau](/manual/discovery/low_level_discovery) (LLD) :

```default
{#MACRO} 
```

C'est une macro utilisée dans une règle LLD et 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, d'hôte et de groupe d'hôtes).
Lors de la découverte de systèmes de fichiers réels [systèmes de fichiers](/manual/discovery/low_level_discovery/examples/mounted_filesystems), [interfaces réseau](/manual/discovery/low_level_discovery/examples/network_interfaces), [machines virtuelles](/manual/vm_monitoring), etc., ces macros sont remplacées par des valeurs réelles et servent de base à 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](/manual/discovery/low_level_discovery/custom_rules) [personnalisée](/manual/discovery/low_level_discovery/custom_rules).
Vous pouvez alors utiliser n'importe quel autre nom de macro LLD et vous y référer.

[comment]: # ({/210528fe-bb12a85a})

[comment]: # ({fe3a506a-ab24d69c})
#### 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.

[comment]: # ({/fe3a506a-ab24d69c})

[comment]: # ({fbb2ee48-fc325ce1})
#### Emplacements pris en charge

Les macros LLD peuvent être utilisées :

-   dans le filtre de la règle de découverte de bas niveau
-   pour les prototypes d'élément dans
    -   nom
    -   paramètres de clé
    -   unité
    -   intervalle de mise à jour^[1](lld_macros#footnotes)^
    -   délai d'attente^[1](lld_macros#footnotes)^
    -   période de stockage de l'historique^[1](lld_macros#footnotes)^
    -   période de stockage des tendances^[1](lld_macros#footnotes)^
    -   étapes de prétraitement de la valeur de l'élément
    -   SNMP OID
    -   champ du capteur IPMI
    -   expression d'élément calculé/agrégé, dans :
        -   constantes d'expression et paramètres de fonction
        -   paramètres de clé de l'élément
    -   conditions de filtre de l'élément agrégé (nom du groupe d'hôtes et nom de balise)
    -   script SSH et script Telnet
    -   requête SQL de surveillance de base de données
    -   champ de point de terminaison de l'élément JMX
    -   description
    -   champ URL de l'agent HTTP
    -   champ des requêtes HTTP de l'agent HTTP
    -   champ du corps de la requête de l'agent HTTP
    -   champ des codes d'état requis de l'agent HTTP
    -   clé et valeur du champ des en-têtes de l'agent HTTP
    -   champ du nom d'utilisateur d'authentification HTTP de l'agent HTTP
    -   champ du mot de passe d'authentification HTTP de l'agent HTTP
    -   champ du proxy HTTP de l'agent HTTP
    -   champ du fichier de certificat SSL HTTP de l'agent HTTP
    -   champ du fichier de clé SSL HTTP de l'agent HTTP
    -   champ du mot de passe de la clé SSL HTTP de l'agent HTTP
    -   balises
-   pour les prototypes de déclencheur dans
    -   nom
    -   données opérationnelles
    -   expression (uniquement dans les constantes et les paramètres de fonction)
    -   URL
    -   description
    -   balises
-   pour les prototypes de graphique dans
    -   nom
-   pour les prototypes d'hôte dans
    -   nom
    -   nom visible
    -   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
    -   nom du prototype de groupe d'hôtes
    -   valeur de la balise de l'hôte
    -   valeur de la macro de l'hôte
    -   (voir la [liste complète](/manual/vm_monitoring/discovery_fields))

Dans tous ces emplacements, sauf le filtre de la règle de découverte de bas niveau, les macros LLD peuvent être utilisées à l'intérieur du contexte de macro utilisateur statique [macro context](/manual/config/macros/user_macros_context).

[comment]: # ({/fbb2ee48-fc325ce1})

[comment]: # ({eb8eceaa-5b26ab61})
#### Utilisation des fonctions de macro

Les fonctions de macro sont prises en charge avec les macros de découverte de bas niveau, à l’exception du [filtre](/manual/discovery/low_level_discovery#filter) 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 afin de les utiliser pour le balisage des événements :

```default
{#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 :

![](../../../../assets/en/manual/config/macros/lld_macro_function.png)

Notez que les virgules ne sont pas autorisées dans les [paramètres de clé](/manual/config/items/item/key#key-parameters) d’un é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 :

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

Pour plus d’informations sur la syntaxe des fonctions de macro, voir : [Fonctions de macro](/manual/config/macros/macro_functions)

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

[comment]: # ({/eb8eceaa-5b26ab61})

[comment]: # ({e463c54b-25a5f07d})
##### Prototypes d'élément sans paramètres de clé

Lorsque les paramètres de clé d'élément ne sont pas utilisés, placez la macro LLD entre les crochets du paramètre [clé d'élément](/manual/config/items/item/key) `[...]` afin qu'elle soit traitée comme un paramètre et substituée pendant la découverte :

```default
v_[{#MACRO}]
```

[comment]: # ({/e463c54b-25a5f07d})

[comment]: # ({47156e66-573cd0dc})
##### Notes de bas de page

^**1**^ Dans les champs marqués avec ^[1](lld_macros#footnotes)^, 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.

[comment]: # ({/47156e66-573cd0dc})
