[comment]: # ({c176fd71-2d9d6e33})
# 5 Makros für Low-Level-Discovery

[comment]: # ({/c176fd71-2d9d6e33})

[comment]: # ({26d00724-bb12a85a})
#### Übersicht

Es gibt einen Makrotyp, der innerhalb der Funktion [Low-Level-Discovery](/manual/discovery/low_level_discovery) (LLD) verwendet wird:

```default
{#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](/manual/discovery/low_level_discovery/examples/mounted_filesystems), [Netzwerkschnittstellen](/manual/discovery/low_level_discovery/examples/network_interfaces), [virtueller Maschinen](/manual/vm_monitoring) 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](/manual/discovery/low_level_discovery/custom_rules) 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.

[comment]: # ({/26d00724-bb12a85a})

[comment]: # ({fe3a506a-ab24d69c})
#### 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}'`).

[comment]: # ({/fe3a506a-ab24d69c})

[comment]: # ({1afdb2cd-fc325ce1})
#### 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
    -   Aktualisierungsintervall^[1](lld_macros#footnotes)^
    -   Timeout^[1](lld_macros#footnotes)^
    -   Aufbewahrungszeitraum für Historie^[1](lld_macros#footnotes)^
    -   Aufbewahrungszeitraum für Trends^[1](lld_macros#footnotes)^
    -   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](/manual/vm_monitoring/discovery_fields))

An all diesen Stellen, außer im Filter der Low-Level-Discovery-Regel, können LLD-Makros innerhalb eines statischen Benutzer-[Makrokontexts](/manual/config/macros/user_macros_context) verwendet werden.

[comment]: # ({/1afdb2cd-fc325ce1})

[comment]: # ({eb8eceaa-5b26ab61})
#### Verwenden von Makrofunktionen

Makrofunktionen werden mit Low-Level-Discovery-Makros unterstützt (außer im [Filter](/manual/discovery/low_level_discovery#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:

```default
{#IFALIAS}=customername_1
```

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

![](../../../../assets/en/manual/config/macros/lld_macro_function.png)

Beachten Sie, dass Kommas in nicht in Anführungszeichen gesetzten [Schlüsselparametern](/manual/config/items/item/key#key-parameters) 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:

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

Weitere Informationen zur Syntax von Makrofunktionen finden Sie unter: [Makrofunktionen](/manual/config/macros/macro_functions)

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

[comment]: # ({/eb8eceaa-5b26ab61})

[comment]: # ({e463c54b-25a5f07d})
##### 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](/manual/config/items/item/key) `[...]`, damit es als Parameter behandelt und während der Erkennung ersetzt wird:

```default
v_[{#MACRO}]
```

[comment]: # ({/e463c54b-25a5f07d})

[comment]: # ({47156e66-573cd0dc})
##### Fußnoten

^**1**^ In den mit ^[1](lld_macros#footnotes)^ 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.

[comment]: # ({/47156e66-573cd0dc})
