Er is een soort macro die wordt gebruikt binnen de laag-niveau ontdekking (LLD) functie:
Dit is een macro die wordt gebruikt in een LLD-regel en echte waarden retourneert voor de bestandsnaam van het bestandssysteem, netwerkinterface, SNMP OID, enz.
Deze macro's kunnen worden gebruikt voor het maken van item-, trigger- en grafiekprototypes. Wanneer vervolgens echte bestandssystemen, netwerkinterfaces, enz. worden ontdekt, worden deze macro's vervangen door echte waarden en vormen ze de basis voor het maken van echte items, triggers en grafieken.
Deze macro's worden ook gebruikt bij het maken van host- en hostgroepprototypes in de ontdekking van virtuele machines vm_monitoring#host_prototypes.
Sommige laag-niveau ontdekking macro's worden "voorgeïnstalleerd" met de LLD-functie in Zabbix - {#FSNAME}, {#FSTYPE}, {#IFNAME}, {#SNMPINDEX}, {#SNMPVALUE}. Het is echter niet verplicht om deze namen te gebruiken bij het maken van een aangepaste laag-niveau ontdekkingsregel. Dan kun je elke andere LLD-macronaam gebruiken en naar die naam verwijzen.
LLD-macro's kunnen worden gebruikt:
Op al die plaatsen, behalve de filter van de laag-niveau ontdekkingsregel, kunnen LLD-macro's worden gebruikt binnen de statische gebruikers macrocontext.
Macrofuncties worden ondersteund bij laag-niveau ontdekkingsmacro's (behalve in de filter van de laag-niveau ontdekkingsregel), waardoor je een bepaald deel van de macrowaarde kunt extraheren met behulp van een reguliere expressie.
Bijvoorbeeld, je wilt mogelijk de klantnaam en het interfacenummer extraheren uit de volgende LLD-macro voor het taggen van gebeurtenissen:
Hiervoor kan de regsub
-macrofunctie worden gebruikt met de macro in het veld voor gebeurtenistagwaarde van een trigger-prototype:
Merk op dat komma's niet zijn toegestaan in niet-geciteerde sleutelparameters, dus de parameter die een macrofunctie bevat, moet worden geciteerd. Het omgekeerde schuine streepje (\
) moet worden gebruikt om dubbele aanhalingstekens binnen de parameter te escapen. Voorbeeld:
Voor meer informatie over de syntaxis van macrofuncties, zie: Macrofuncties
Macrofuncties worden ondersteund in laag-niveau ontdekkingsmacro's sinds Zabbix 4.0.
1 In de velden die zijn gemarkeerd met 1 moet één enkele macro het hele veld vullen. Meerdere macro's in een veld of macro's gecombineerd met tekst worden niet ondersteund.