This is a translation of the original English documentation page. Help us make it better.

5 Low-level discovery macro's

Overzicht

Er is een soort macro die wordt gebruikt binnen de laag-niveau ontdekking (LLD) functie:

{#MACRO}

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.

Ondersteunde locaties

LLD-macro's kunnen worden gebruikt:

  • in de filter van de laag-niveau ontdekkingsregel
  • voor item-prototypes in
    • naam
    • sleutelparameters
    • eenheid
    • update-interval1
    • opslagperiode geschiedenis1
    • opslagperiode trend1
    • stappen voor voorbewerking van itemwaarde
    • SNMP OID
    • IPMI-sensorveld
    • berekende itemformule
    • SSH-script en Telnet-script
    • SQL-query voor databasebewaking
    • JMX-item eindpuntveld
    • beschrijving
    • URL-veld voor HTTP-agent
    • velden voor HTTP-queryvelden van HTTP-agent
    • veld voor aanvraagbody van HTTP-agent
    • veld voor vereiste statuscodes van HTTP-agent
    • sleutel- en waardevelden voor kopteksten van HTTP-agent
    • gebruikersnaamveld voor HTTP-authenticatie van agent
    • wachtwoordveld voor HTTP-authenticatie van agent
    • veld voor HTTP-proxy van agent
    • veld voor SSL-certificaatbestand van HTTP-agent
    • veld voor SSL-sleutelbestand van HTTP-agent
    • veld voor wachtwoord van SSL-sleutel van HTTP-agent
    • veld voor time-out van HTTP-agent1
    • tags
  • voor trigger-prototypes in
    • naam
    • operationele gegevens
    • expressie (alleen in constanten en functieparameters)
    • URL
    • beschrijving
    • tags
  • voor grafiek-prototypes in
    • naam
  • voor host-prototypes in
    • naam
    • zichtbare naam
    • aangepaste interfacevelden: IP, DNS, poort, SNMP v1/v2-community, SNMP v3-contextnaam, SNMP v3-beveiligingsnaam, SNMP v3 authenticatie-wachtwoord, SNMP v3-privacy-wachtwoord
    • naam van hostgroep-prototype
    • waarde van hosttag
    • waarde van hostmacro
    • (zie de volledige lijst)

Op al die plaatsen, behalve de filter van de laag-niveau ontdekkingsregel, kunnen LLD-macro's worden gebruikt binnen de statische gebruikers macrocontext.

Gebruik van macrofuncties

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:

{#IFALIAS}=klantnaam_1

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:

net.if.in["{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}",bytes]

Voor meer informatie over de syntaxis van macrofuncties, zie: Macrofuncties

Macrofuncties worden ondersteund in laag-niveau ontdekkingsmacro's sinds Zabbix 4.0.

Voetnoten

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.