5 Makros für Low-Level-Discovery

Übersicht

Es gibt einen Makrotyp, der innerhalb der Funktion Low-Level-Discovery (LLD) verwendet wird:

{#MACRO} 

Dabei handelt es sich um ein Makro, das in einer LLD-Regel verwendet wird und reale Werte des Dateisystemnamens, der Netzwerkschnittstelle, der SNMP-OID usw. zurückgibt.

Diese Makros können verwendet werden, um Entitätsprototypen (Datenpunkt-, Auslöser-, Graph-, LLD-Regel-, Host- und Hostgruppen-Prototypen) zu erstellen. Bei der Erkennung realer Dateisysteme, Netzwerkschnittstellen, virtueller Maschinen usw. werden diese Makros durch reale Werte ersetzt und bilden die Grundlage für die Erstellung realer Entitäten.

Einige Low-Level-Discovery-Makros werden in Zabbix zusammen mit der LLD-Funktion „mitgeliefert“ - {#FSNAME}, {#FSTYPE}, {#IFNAME}, {#SNMPINDEX}, {#SNMPVALUE}. Beim Erstellen einer benutzerdefinierten Low-Level-Discovery-Regel ist es jedoch nicht zwingend erforderlich, diese Namen zu verwenden. Dann können Sie jeden anderen LLD-Makronamen verwenden und auf diesen Namen verweisen.

Unterstützte Datentypen

Beim Definieren benutzerdefinierter Discovery-Regeln müssen Eigenschaftswerte, die in JSON-Objekten für LLD-Makros zurückgegeben werden, einer der folgenden primitiven Typen sein:

  • string
  • number
  • boolean

Arrays, Objekte und null-Werte werden nicht unterstützt. Jedes LLD-Makro, das auf einen solchen Wert verweist, bleibt unausgewertet und wird bei der Vorverarbeitung und Erstellung von Datenpunkten wörtlich angezeigt (z. B. '{#MY_MACRO}').

Unterstützte Orte

LLD-Makros können verwendet werden:

  • im Filter der Low-Level-Discovery-Regel
  • für Vorlagen für Datenpunkte und Discovery-Vorlagen in
    • Name
    • Schlüsselparameter
    • Einheit
    • Aktualisierungsintervall1
    • Timeout1
    • Aufbewahrungszeitraum für Historie1
    • Aufbewahrungszeitraum für Trends1
    • Vorverarbeitungsschritte des Datenpunktwerts
    • SNMP-OID
    • IPMI-Sensorfeld
    • Ausdruck für berechnete/aggregierte Datenpunkte, in:
      • Ausdruckskonstanten und Funktionsparametern
      • Datenpunktschlüsselparametern
    • Filterbedingungen für aggregierte Datenpunkte (Hostgruppenname und Tag-Name)
    • SSH-Skript und Telnet-Skript
    • SQL-Abfrage für die Datenbanküberwachung
    • Endpunktfeld des JMX-Datenpunkts
    • Beschreibung
    • URL-Feld des HTTP-Agenten
    • Feld für HTTP-Abfragefelder des HTTP-Agenten
    • Feld für den Anforderungstext des HTTP-Agenten
    • Feld für erforderliche Statuscodes des HTTP-Agenten
    • Schlüssel und Wert des Felds für HTTP-Agenten-Header
    • Feld für den Benutzernamen der HTTP-Authentifizierung des HTTP-Agenten
    • Feld für das Passwort der HTTP-Authentifizierung des HTTP-Agenten
    • Feld für den HTTP-Proxy des HTTP-Agenten
    • Feld für die HTTP-SSL-Zertifikatsdatei des HTTP-Agenten
    • Feld für die HTTP-SSL-Schlüsseldatei des HTTP-Agenten
    • Feld für das Passwort des HTTP-SSL-Schlüssels des HTTP-Agenten
    • Tags
  • für Auslöservorlagen in
    • Name
    • Betriebsdaten
    • Ausdruck (nur in Konstanten und Funktionsparametern)
    • URL
    • Beschreibung
    • Tags
  • für Diagrammvorlagen in
    • Name
  • für Hostvorlagen in
    • Name
    • sichtbarer Name
    • benutzerdefinierte Schnittstellenfelder: IP, DNS, Port, SNMP-v1/v2-Community, SNMP-v3-Kontextname, SNMP-v3-Sicherheitsname, SNMP-v3-Authentifizierungsphrase, SNMP-v3-Privatsphäre-Phrase
    • Name der Hostgruppen-Vorlage
    • Wert des Host-Tags
    • Wert des Host-Makros
    • (siehe die vollständige Liste)

An all diesen Stellen, außer im Filter der Low-Level-Discovery-Regel, können LLD-Makros innerhalb eines statischen Benutzer-Makrokontexts verwendet werden.

Verwenden von Makrofunktionen

Makrofunktionen werden mit Low-Level-Discovery-Makros unterstützt (außer im Filter der Low-Level-Discovery-Regel) und ermöglichen es, mithilfe eines regulären Ausdrucks einen bestimmten Teil des Makrowerts zu extrahieren.

Beispielsweise möchten Sie möglicherweise für das Event-Tagging den Kundennamen und die Schnittstellennummer aus dem folgenden LLD-Makro extrahieren:

{#IFALIAS}=customername_1

Dazu kann die Makrofunktion regsub mit dem Makro im Feld für den Event-Tag-Wert eines Auslöserprototyps verwendet werden:

Beachten Sie, dass Kommas in nicht in Anführungszeichen gesetzten Schlüsselparametern von Datenpunkten nicht zulässig sind, daher muss der Parameter, der eine Makrofunktion enthält, in Anführungszeichen gesetzt werden. Das Backslash-Zeichen (\) sollte verwendet werden, um doppelte Anführungszeichen innerhalb des Parameters zu maskieren. Beispiel:

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

Weitere Informationen zur Syntax von Makrofunktionen finden Sie unter: Makrofunktionen

Makrofunktionen werden in Low-Level-Discovery-Makros seit Zabbix 4.0 unterstützt.

Datenpunkt-Prototypen ohne Schlüsselparameter

Wenn keine Schlüsselparameter für den Datenpunkt-Schlüssel verwendet werden, platzieren Sie das LLD-Makro innerhalb der Parameterklammern des Datenpunkt-Schlüssels [...], damit es als Parameter behandelt und während der Erkennung ersetzt wird:

v_[{#MACRO}]
Fußnoten

1 In den mit 1 markierten Feldern muss ein einzelnes Makro das gesamte Feld ausfüllen. Mehrere Makros in einem Feld oder mit Text gemischte Makros werden nicht unterstützt.