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

4 Ontdekkingsmacro's op laag niveau

Overzicht

Er is een type macro dat wordt gebruikt binnen de low-level ontdekking (LLD) functie:

{#MACRO} 

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.

Ondersteunde locaties

LLD-macro's kunnen worden gebruikt:

  • in de filter van de low-level ontdekking regel
  • voor item-prototypes in
    • naam
    • sleutelparameters
    • eenheid
    • update-interval1
    • bewaarperiode voor geschiedenisopslag1
    • bewaarperiode voor trendopslag1
    • stappen voor itemwaarde voorverwerking
    • SNMP OID
    • IPMI-sensorveld
    • formule voor berekend item
    • SSH-script en Telnet-script
    • SQL-query voor databasebewaking
    • veld voor eindpunt van JMX-item
    • beschrijving
    • veld URL voor HTTP-agent
    • velden voor HTTP-query voor HTTP-agent
    • veld voor verzoekbody voor HTTP-agent
    • veld voor vereiste statuscodes voor HTTP-agent
    • sleutel en waarde van velden voor HTTP-agent headers
    • veld voor gebruikersnaam voor HTTP-authenticatie voor HTTP-agent
    • veld voor wachtwoord voor HTTP-authenticatie voor HTTP-agent
    • veld voor HTTP-proxy voor HTTP-agent
    • veld voor SSL-certificaatbestand voor HTTP-agent
    • veld voor SSL-sleutelbestand voor HTTP-agent
    • veld voor wachtwoord voor SSL-sleutel voor HTTP-agent
    • veld voor timeout voor 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 in de filter van de low-level ontdekking regel, kunnen LLD-macro's worden gebruikt binnen de context van statische gebruikersmacro's.

Gebruik van macrofuncties

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:

{#IFALIAS}=customername_1

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:

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

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

Macrofuncties worden ondersteund in low-level 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.