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

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

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

Esiste un tipo di macro utilizzato all'interno della funzione di [discovery a basso livello](/manual/discovery/low_level_discovery) (LLD):

```default
{#MACRO} 
```

Si tratta di una macro usata in una regola LLD e che restituisce i 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à (item, trigger, grafico, host e prototipi di gruppi di host).
Durante il discovery di [file system](/manual/discovery/low_level_discovery/examples/mounted_filesystems) reali, [interfacce di rete](/manual/discovery/low_level_discovery/examples/network_interfaces), [macchine virtuali](/manual/vm_monitoring), ecc., queste macro vengono sostituite con valori reali e costituiscono la base per la creazione di entità reali.

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

[comment]: # ({/210528fe-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]: # ({fbb2ee48-fc325ce1})
#### Posizioni supportate

Le macro LLD possono essere usate:

-   nel filtro della regola di discovery a basso livello
-   per i prototipi di item 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 prototipi di trigger in
    -   name
    -   operational data
    -   expression (only in constants and function parameters)
    -   URL
    -   description
    -   tags
-   per i prototipi di graph in
    -   name
-   per i prototipi 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 usate all'interno del [macro context](/manual/config/macros/user_macros_context) statico dell'utente.

[comment]: # ({/fbb2ee48-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 chiave

Quando i parametri 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})
