5 Macro di rilevamento di 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 low-level discovery
  • nelle regole di low-level discovery annidate, in
    • parametri di preprocessing JSONPath
    • campo JSONPath per 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 dello storico1
    • periodo di conservazione dei trend1
    • passaggi di preprocessing del valore dell'item
    • OID SNMP
    • campo del sensore IPMI
    • espressione dell'item calcolato/aggregato, in:
      • costanti dell'espressione e parametri di funzione
      • parametri della chiave dell'item
    • condizioni di filtro dell'item aggregato (nome del gruppo host e nome del tag)
    • script SSH e script Telnet
    • query SQL di monitoraggio database
    • campo endpoint dell'item JMX
    • descrizione
    • campo URL dell'agent HTTP
    • campo dei campi di query HTTP dell'agent HTTP
    • campo del corpo della richiesta dell'agent HTTP
    • campo dei codici di stato richiesti dell'agent HTTP
    • chiave e valore del campo header dell'agent HTTP
    • campo nome utente per l'autenticazione HTTP dell'agent HTTP
    • campo password per l'autenticazione HTTP dell'agent HTTP
    • campo proxy HTTP dell'agent HTTP
    • campo file del certificato SSL HTTP dell'agent HTTP
    • campo file della chiave SSL HTTP dell'agent HTTP
    • campo password della chiave SSL HTTP dell'agent HTTP
    • tag
  • per i prototipi di trigger in
    • nome
    • dati operativi
    • espressione (solo nelle costanti e nei parametri di funzione)
    • URL
    • descrizione
    • tag
  • per i prototipi di grafico in
    • nome
  • per i prototipi di host in
    • nome
    • nome visibile
    • campi personalizzati dell'interfaccia: IP, DNS, porta, community SNMP v1/v2, nome del contesto SNMP v3, nome di sicurezza SNMP v3, passphrase di autenticazione SNMP v3, passphrase di privacy SNMP v3
    • nome del prototipo di gruppo host
    • valore del tag host
    • valore della macro host
    • (vedere l'elenco completo)

In tutti questi punti, eccetto il filtro della regola di low-level discovery, le macro LLD possono essere utilizzate all'interno del contesto macro utente statico.

Utilizzo delle funzioni macro

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

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

{#IFALIAS}=customername_1

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

Si noti che le virgole non sono consentite nei parametri key 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:

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.