Er is een type macro dat wordt gebruikt binnen de low-level ontdekking (LLD) functie:
Dit is een macro die wordt gebruikt in een LLD-regel en de werkelijke waarden van het bestandssysteem, het netwerkinterface, SNMP OID, enz. retourneert.
Deze macro's kunnen worden gebruikt voor het maken van item-, trigger- en grafiek-prototypes. Wanneer dan werkelijke 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 hostgroep-prototypes in de ontdekking van virtuele machines.
Sommige low-level ontdekkingsmacro's zijn "voorgeïnstalleerd" in 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 low-level ontdekkingsregel. In dat geval kunt u elke andere naam voor een LLD-macro gebruiken en naar die naam verwijzen.
LLD-macro's kunnen worden gebruikt:
Op al die plaatsen, behalve in de filter van de low-level ontdekking regel, kunnen LLD-macro's worden gebruikt binnen de context van statische gebruikersmacro's.
Macrofuncties worden ondersteund bij low-level ontdekkingsmacro's (behalve in de filter van de low-level ontdekkingsregel), waardoor het mogelijk is om een bepaald deel van de macrowaarde te 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:
Om dit te doen, kan de regsub
macrofunctie worden gebruikt met de macro in het veld voor tagwaarde van een triggerprototype:
Merk op dat komma's niet zijn toegestaan in niet-geciteerde sleutelparameters, dus de parameter die een macrofunctie bevat, moet tussen aanhalingstekens staan. Het backslash-teken (\
) moet worden gebruikt om dubbele aanhalingstekens binnen de parameter te ontsnappen. Voorbeeld:
Voor meer informatie over de syntaxis van macrofuncties, zie: Macrofuncties
Macrofuncties worden ondersteund in low-level 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.