5 Macros de bajo nivel de descubrimiento
Descripción general
Existe un tipo de macro utilizado dentro de la función de descubrimiento de bajo nivel (LLD):
{#MACRO}
Es una macro que se utiliza en una regla de LLD y devuelve valores reales del nombre del sistema de archivos, la interfaz de red, el OID de SNMP, etc.
Estas macros se pueden usar para crear prototipos de entidades (prototipos de item, trigger, gráfico, host y grupo de hosts). Durante el descubrimiento de sistemas de archivos reales, interfaces de red, máquinas virtuales, etc., estas macros se sustituyen por valores reales y sirven como 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 seguir estos nombres al crear una regla de descubrimiento de bajo nivel personalizada. En ese caso, puede usar 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 admitidas
Las macros LLD se pueden usar:
- en el filtro de la regla de descubrimiento de bajo nivel
- para prototipos de item en
- name
- parámetros de key
- unit
- intervalo de actualización1
- timeout1
- período de almacenamiento de history1
- período de almacenamiento de trend1
- pasos de preprocesamiento del valor del item
- SNMP OID
- campo del sensor IPMI
- expresión de item calculado/agregado, en:
- constantes de la expresión y parámetros de función
- parámetros de key del item
- condiciones de filtro de item agregado (nombre del grupo de host y nombre de la etiqueta)
- script SSH y script Telnet
- consulta SQL de monitorización de base de datos
- campo de endpoint del item JMX
- description
- campo URL del agent HTTP
- campo de consulta HTTP del agent HTTP
- campo del cuerpo de la solicitud del agent HTTP
- campo de códigos de estado requeridos del agent HTTP
- key y value del campo de headers del agent HTTP
- campo de username de autenticación HTTP del agent HTTP
- campo de password de autenticación HTTP del agent HTTP
- campo de proxy HTTP del agent HTTP
- campo de archivo de certificado SSL HTTP del agent HTTP
- campo de archivo de key SSL HTTP del agent HTTP
- campo de password de key SSL HTTP del agent HTTP
- tags
- para prototipos de trigger en
- name
- datos operativos
- expresión (solo en constantes y parámetros de función)
- URL
- description
- tags
- para prototipos de gráfico en
- name
- para prototipos de host en
- name
- visible name
- campos de interfaz personalizados: IP, DNS, port, comunidad SNMP v1/v2, nombre de contexto SNMP v3, nombre de seguridad SNMP v3, frase de contraseña de autenticación SNMP v3, frase de contraseña de privacidad SNMP v3
- nombre del prototipo de grupo de host
- value de la etiqueta del host
- value de la macro del host
- (consulte la lista completa)
En todos esos lugares, excepto en el filtro de la regla de descubrimiento de bajo nivel, las macros LLD se pueden usar dentro del contexto de macro estático del usuario.
Uso de funciones de macro
Las funciones de macro son compatibles con las macros de descubrimiento de bajo nivel, excepto en el filter de la regla de descubrimiento de bajo nivel, y permiten extraer una parte determinada del valor de la macro mediante una expresión regular.
Por ejemplo, puede 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, puede utilizarse la función de macro regsub 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 key de item sin comillas, por lo que el parámetro que contiene una función de macro debe ir entre comillas.
Debe utilizarse el carácter de barra invertida (\) 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 en las macros de descubrimiento de bajo nivel desde Zabbix 4.0.
Prototipos de item sin parámetros de clave
Cuando no se utilizan parámetros de clave de item, coloque la macro LLD dentro de los corchetes del parámetro clave de item [...] para que se trate como un parámetro y se sustituya durante el descubrimiento:
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.