5 Macros de bajo nivel de descubrimiento
Descripción general
Hay un tipo de macro que se utiliza dentro de la función de descubrimiento de bajo nivel (LLD):
{#MACRO}
Es una macro que se utiliza en una regla LLD y devuelve valores reales del nombre del sistema de archivos, interfaz de red, OID SNMP, etc.
Estas macros pueden utilizarse para crear prototipos de entidades (prototipos de item, trigger, gráfico, regla LLD, host y grupo de host). Durante el descubrimiento de sistemas de archivos, interfaces de red, máquinas virtuales, etc., estas macros se sustituyen por valores reales y son la base para crear entidades reales.
Algunas macros de descubrimiento de bajo nivel vienen "preempaquetadas" con la función LLD en Zabbix - {#FSNAME}, {#FSTYPE}, {#IFNAME}, {#SNMPINDEX}, {#SNMPVALUE}. Sin embargo, no es obligatorio ceñirse a estos nombres al crear una regla de descubrimiento de bajo nivel personalizada. Entonces puede utilizar cualquier otro nombre de macro LLD y hacer referencia a ese nombre.
Tipos de datos soportados
Al definir reglas de descubrimiento personalizadas, los valores de las propiedades devueltos en objetos JSON para macros LLD deben ser uno de los siguientes tipos primitivos:
- string
- number
- boolean
No se admiten arrays, objetos ni valores nulos.
Cualquier macro LLD que haga referencia a dicho valor permanecerá sin expandirse y aparecerá literalmente (por ejemplo, '{#MY_MACRO}') durante el preprocesamiento y la creación del item.
Ubicaciones soportadas
Las macros LLD pueden usarse:
- en el filtro de la regla de bajo nivel de descubrimiento
- en reglas de bajo nivel de descubrimiento anidadas, en
- parámetros de preprocesamiento JSONPath
- campo JSONPath para macros LLD personalizadas
- para prototipos de item y prototipos de descubrimiento en
- nombre
- parámetros de clave
- unidad
- intervalo de actualización1
- tiempo de espera1
- período de almacenamiento de histórico1
- período de almacenamiento de tendencias1
- pasos de preprocesamiento del valor del item
- SNMP OID
- campo de sensor IPMI
- expresión de item calculado/agregado, en:
- constantes de expresión y parámetros de función
- parámetros de clave de item
- condiciones de filtro de item agregado (nombre de grupo de host y nombre de etiqueta)
- script SSH y script Telnet
- consulta SQL de monitorización de base de datos
- campo endpoint de item JMX
- descripción
- campo URL de HTTP agent
- campo de parámetros de consulta HTTP de HTTP agent
- campo de cuerpo de la petición de HTTP agent
- campo de códigos de estado requeridos de HTTP agent
- clave y valor del campo de cabeceras de HTTP agent
- campo de nombre de usuario de autenticación HTTP de HTTP agent
- campo de contraseña de autenticación HTTP de HTTP agent
- campo de proxy HTTP de HTTP agent
- campo de archivo de certificado SSL de HTTP agent
- campo de archivo de clave SSL de HTTP agent
- campo de contraseña de clave SSL de HTTP agent
- etiquetas
- para prototipos de trigger en
- nombre
- datos operativos
- expresión (solo en constantes y parámetros de función)
- URL
- descripción
- etiquetas
- para prototipos de gráficos en
- nombre
- para prototipos de host en
- nombre
- nombre visible
- campos personalizados de interfaz: IP, DNS, puerto, comunidad SNMP v1/v2, nombre de contexto SNMP v3, nombre de seguridad SNMP v3, frase de autenticación SNMP v3, frase de privacidad SNMP v3
- nombre de prototipo de grupo de host
- valor de etiqueta de host
- valor de macro de host
- (ver la lista completa)
En todos esos lugares, excepto en el filtro de la regla de bajo nivel de descubrimiento, las macros LLD pueden usarse dentro del contexto de macro de usuario estático.
Uso de funciones de macro
Las funciones de macro son compatibles con las macros de bajo nivel de descubrimiento (excepto en la filtro de la regla de bajo nivel de descubrimiento), lo que permite extraer una determinada parte del valor de la macro utilizando una expresión regular.
Por ejemplo, es posible que desee extraer el nombre del cliente y el número de interfaz de la siguiente macro LLD para fines de etiquetado de eventos:
{#IFALIAS}=customername_1
Para ello, la función de macro regsub se puede utilizar con la macro en el campo de valor de la etiqueta de evento de un prototipo de trigger:

Tenga en cuenta que no se permiten comas en los parámetros de clave de item sin comillas, por lo que el parámetro que contiene una función de macro debe ir entre comillas.
El carácter de barra invertida (\) debe usarse para escapar las comillas dobles dentro del parámetro.
Ejemplo:
net.if.in["{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}",bytes]
Para obtener más información sobre la sintaxis de las funciones de macro, consulte: Funciones de macro
Las funciones de macro son compatibles con las macros de bajo nivel de descubrimiento desde Zabbix 4.0.
Item prototypes with no key parameters
Some item types (for example Zabbix trapper and Simple checks) do not expose regular key parameters in the same way as agent items. When creating an item prototype for such types, place the LLD macro inside the item key parameter brackets [...] so it is treated as a parameter and substituted during discovery:
v_[{#MACRO}]
Notas a pie de página
1 En los campos marcados con 1, una sola macro debe rellenar todo el campo. No se admiten varias macros en un campo ni macros mezcladas con texto.