Macro di discovery a basso livello
Panoramica
Esiste un tipo di macro utilizzato nella funzione low-level discovery (LLD):
{#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, interfacce di rete, macchine virtuali, 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. In tal caso, è possibile utilizzare qualsiasi altro nome di macro LLD e fare riferimento a quel nome.
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.
Posizioni supportate
Le macro LLD possono essere utilizzate:
- nel filtro della regola di discovery di basso livello
- nelle regole di discovery di basso livello annidate, in
- parametri di pre-elaborazione JSONPath
- campo JSONPath per le macro LLD personalizzate
- per i prototipi di item e i prototipi di discovery, in
- nome
- parametri della chiave
- unità
- intervallo di aggiornamento1
- timeout1
- periodo di conservazione della cronologia1
- periodo di conservazione dei trend1
- passaggi di pre-elaborazione del valore dell'item
- OID SNMP
- campo del sensore IPMI
- espressione dell'item calcolato/aggregato, in:
- costanti dell'espressione e parametri delle funzioni
- parametri della chiave dell'item
- condizioni del filtro dell'item aggregato (nome del gruppo di host e nome del tag)
- script SSH e script Telnet
- query SQL per il monitoraggio del database
- campo dell'endpoint dell'item JMX
- descrizione
- campo URL dell'HTTP agent
- campo dei campi della query HTTP dell'HTTP agent
- campo del corpo della richiesta dell'HTTP agent
- campo dei codici di stato richiesti dell'HTTP agent
- chiave e valore dei campi dell'intestazione dell'HTTP agent
- campo del nome utente per l'autenticazione HTTP dell'HTTP agent
- campo della password per l'autenticazione HTTP dell'HTTP agent
- campo del proxy HTTP dell'HTTP agent
- campo del file del certificato SSL dell'HTTP agent
- campo del file della chiave SSL dell'HTTP agent
- campo della password della chiave SSL dell'HTTP agent
- tag
- per i prototipi di trigger, in
- nome
- dati operativi
- espressione (solo nelle costanti e nei parametri delle funzioni)
- URL
- descrizione
- tag
- per i prototipi di grafico, in
- nome
- per i prototipi di host, in
- nome
- nome visibile
- campi dell'interfaccia personalizzata: IP, DNS, porta, community SNMPv1/SNMPv2, numero massimo di ripetizioni SNMPv2/SNMPv3, tentativi SNMPv1/SNMPv2/SNMPv3, nome del contesto SNMPv3, nome di sicurezza SNMPv3, passphrase di autenticazione SNMPv3, passphrase di privacy SNMPv3
- nome del prototipo del gruppo di host
- valore del tag dell'host
- valore della macro dell'host
- (vedere l'elenco completo)
In tutte queste posizioni, ad eccezione del filtro della regola di discovery di basso livello, le macro LLD possono essere utilizzate all'interno del contesto della macro utente statico.
Utilizzo delle funzioni macro
Le funzioni macro sono supportate con le macro di low-level discovery (ad eccezione del filtro della regola di low-level discovery) e consentono di estrarre una determinata parte del valore della macro utilizzando un'espressione regolare.
Ad esempio, è possibile estrarre il nome del cliente e il numero dell'interfaccia dalla seguente macro LLD per utilizzarli nei tag degli eventi:
{#IFALIAS}=customername_1
A tale scopo, è possibile utilizzare la funzione macro regsub con la macro nel campo del valore del tag dell'evento di un prototipo di trigger:

Si noti che le virgole non sono consentite nei parametri della chiave di un item non racchiusi tra virgolette; pertanto, il parametro contenente una funzione macro deve essere racchiuso tra virgolette.
Il carattere backslash (\) deve essere utilizzato per eseguire l'escape delle virgolette doppie all'interno del parametro.
Esempio:
net.if.in["{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}",bytes]
Per ulteriori informazioni sulla sintassi delle funzioni macro, vedere: Funzioni macro
Le funzioni macro sono supportate nelle macro di low-level discovery a partire da Zabbix 4.0.
Prototipi di item senza parametri della chiave
Quando i parametri della chiave dell'item non vengono utilizzati, inserire la macro LLD tra le parentesi dei parametri della chiave dell'item [...] in modo che venga trattata come un parametro e sostituita durante il rilevamento:
v_[{#MACRO}]
Note a piè di pagina
1 Nei campi contrassegnati con 1 una singola macro deve occupare l'intero campo. Macro multiple in un campo o macro mescolate al testo non sono supportate.