[comment]: # ({c176fd71-2d9d6e33})
# 5 Macro di rilevamento di basso livello

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

[comment]: # ({26d00724-bb12a85a})
#### Panoramica

Esiste un tipo di macro utilizzato nella funzione [low-level discovery](/manual/discovery/low_level_discovery) (LLD):

```default
{#MACRO} 
```

Si tratta di una macro utilizzata in una regola LLD che restituisce valori reali del nome del file system, dell'interfaccia di rete, dell'OID SNMP, ecc.

Queste macro possono essere utilizzate per creare prototipi di entità (prototipi di item, trigger, grafici, regole LLD, host e gruppi host).
Durante il rilevamento di [file system](/manual/discovery/low_level_discovery/examples/mounted_filesystems), [interfacce di rete](/manual/discovery/low_level_discovery/examples/network_interfaces), [macchine virtuali](/manual/vm_monitoring), ecc. reali, queste macro vengono sostituite con valori reali e costituiscono la base per la creazione di entità reali.

Alcune macro di low-level discovery sono fornite "preconfezionate" con la funzione LLD in Zabbix: {\#FSNAME}, {\#FSTYPE}, {\#IFNAME}, {\#SNMPINDEX}, {\#SNMPVALUE}.
Tuttavia, non è obbligatorio attenersi a questi nomi quando si crea una regola di low-level discovery [personalizzata](/manual/discovery/low_level_discovery/custom_rules).
In tal caso, è possibile utilizzare qualsiasi altro nome di macro LLD e fare riferimento a quel nome.

[comment]: # ({/26d00724-bb12a85a})

[comment]: # ({fe3a506a-ab24d69c})
#### Tipi di dati supportati

Quando si definiscono regole di discovery personalizzate, i valori delle proprietà restituiti negli oggetti JSON per le macro LLD devono essere uno dei seguenti tipi primitivi:

-   string
-   number
-   boolean

Array, oggetti e valori null non sono supportati.
Qualsiasi macro LLD che faccia riferimento a un tale valore rimarrà non espansa e apparirà letteralmente (ad esempio `'{#MY_MACRO}'`) durante il preprocessing e la creazione degli item.

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

[comment]: # ({1afdb2cd-fc325ce1})
#### Posizioni supportate

Le macro LLD possono essere utilizzate:

-   nel filtro della regola di discovery a basso livello
-   per i prototype di item e i prototype di discovery in
    -   name
    -   key parameters
    -   unit
    -   update interval^[1](lld_macros#footnotes)^
    -   timeout^[1](lld_macros#footnotes)^
    -   history storage period^[1](lld_macros#footnotes)^
    -   trend storage period^[1](lld_macros#footnotes)^
    -   item value preprocessing steps
    -   SNMP OID
    -   IPMI sensor field
    -   calculated/aggregate item expression, in:
        -   expression constants and function parameters
        -   item key parameters
    -   aggregate item filter conditions (host group name and tag name)
    -   SSH script and Telnet script
    -   database monitoring SQL query
    -   JMX item endpoint field
    -   description
    -   HTTP agent URL field
    -   HTTP agent HTTP query fields field
    -   HTTP agent request body field
    -   HTTP agent required status codes field
    -   HTTP agent headers field key and value
    -   HTTP agent HTTP authentication username field
    -   HTTP agent HTTP authentication password field
    -   HTTP agent HTTP proxy field
    -   HTTP agent HTTP SSL certificate file field
    -   HTTP agent HTTP SSL key file field
    -   HTTP agent HTTP SSL key password field
    -   tags
-   per i prototype di trigger in
    -   name
    -   operational data
    -   expression (only in constants and function parameters)
    -   URL
    -   description
    -   tags
-   per i prototype di graph in
    -   name
-   per i prototype di host in
    -   name
    -   visible name
    -   custom interface fields: IP, DNS, port, SNMP v1/v2 community, SNMP v3 context name, SNMP v3 security name, SNMP v3 authentication passphrase, SNMP v3 privacy passphrase
    -   host group prototype name
    -   host tag value
    -   host macro value
    -   (see the [full list](/manual/vm_monitoring/discovery_fields))

In tutti questi punti, tranne nel filtro della regola di discovery a basso livello, le macro LLD possono essere utilizzate all'interno del [macro context](/manual/config/macros/user_macros_context) statico dell'utente.

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

[comment]: # ({eb8eceaa-5b26ab61})
#### Utilizzo delle funzioni macro

Le funzioni macro sono supportate con le macro di low-level discovery (tranne che nel [filtro](/manual/discovery/low_level_discovery#filter) della regola di low-level discovery), consentendo di estrarre una determinata parte del valore della macro utilizzando un'espressione regolare.

Ad esempio, è possibile voler estrarre il nome del cliente e il numero dell'interfaccia dalla seguente macro LLD ai fini del tagging degli eventi:

```default
{#IFALIAS}=customername_1
```

Per farlo, è possibile utilizzare la funzione macro `regsub` con la macro nel campo del valore del tag evento di un prototipo di trigger:

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

Si noti che le virgole non sono consentite nei [parametri key](/manual/config/items/item/key#key-parameters) non tra virgolette di un item, quindi il parametro contenente una funzione macro deve essere racchiuso tra virgolette.
Il carattere barra rovesciata (`\`) deve essere utilizzato per eseguire l'escape delle virgolette doppie all'interno del parametro.
Esempio:

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

Per ulteriori informazioni sulla sintassi delle funzioni macro, vedere: [Funzioni macro](/manual/config/macros/macro_functions)

Le funzioni macro sono supportate nelle macro di low-level discovery a partire da Zabbix 4.0.

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

[comment]: # ({e463c54b-25a5f07d})
##### Prototipi di item senza parametri di chiave

Quando i parametri della chiave dell'item non vengono utilizzati, inserire la macro LLD tra le parentesi del parametro [chiave dell'item](/manual/config/items/item/key) `[...]` in modo che venga trattata come un parametro e sostituita durante la discovery:

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

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

[comment]: # ({47156e66-573cd0dc})
##### Note a piè di pagina

^**1**^ Nei campi contrassegnati con ^[1](lld_macros#footnotes)^ una singola macro deve occupare l'intero campo.
Macro multiple in un campo o macro mescolate al testo non sono supportate.

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