#4 Macros de descubrimiento de bajo nivel

Descripción general

Hay un tipo de macro que se utiliza dentro de la función de nivel bajo descubrimiento (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 se pueden utilizar para crear prototipos de métricas, iniciadores y gráficos. Luego, al descubrir sistemas de archivos reales, interfaces de red, etc., estas macros se sustituyen por valores reales y son la base para crear métricas reales, iniciadores y gráficos.

Estas macros también se utilizan para crear prototipos de equipos y grupos de equipos en el descubrimiento de máquinas virtuales.

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 adherirse a estos nombres cuando se cree una regla de descubrimiento de bajo nivel personalizada. Por lo tanto, puede usar cualquier otro nombre de macro LLD y hacer referencia a ese nombre.

Ubicaciones admitidas

Se pueden utilizar macros LLD:

  • en el filtro de reglas de descubrimiento de bajo nivel
  • para prototipos de métricas en
    • nombre
    • parámetros clave
    • unidad
    • intervalo de actualización1
    • período de almacenamiento del historial1
    • período de almacenamiento de tendencias1
    • pasos de preprocesamiento del valor de la métrica
    • OID SNMP
    • campo de sensores IPMI
    • fórmula de métrica calculada
    • secuencia de comandos SSH y secuencia de comandos Telnet
    • consulta SQL de monitoreo de base de datos
    • campo de punto final del elemento JMX
    • descripción
    • campo URL del agente HTTP
    • campo de campos de consulta HTTP del agente HTTP
    • campo de cuerpo de solicitud del agente HTTP
    • campo de códigos de estado requeridos por el agente HTTP
    • clave y valor del campo de encabezados del agente HTTP
    • campo de nombre de usuario de autenticación HTTP del agente HTTP
    • campo de contraseña de autenticación HTTP del agente HTTP
    • campo de proxy HTTP del agente HTTP
    • campo de archivo de certificado HTTP SSL del agente HTTP
    • campo de archivo de clave HTTP SSL del agente HTTP
    • campo de contraseña de clave HTTP SSL del agente HTTP
    • campo de tiempo de espera HTTP del agente HTTP1
    • etiquetas
  • para prototipos de iniciadores en
    • nombre
    • datos operacionales
    • 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 equipo en
    • nombre
    • nombre visible
    • campos de interfaz personalizados: IP, DNS, puerto, comunidad SNMP v1/v2, Nombre de contexto SNMP v3, nombre de seguridad SNMP v3, SNMP v3 frase de contraseña de autenticación, frase de contraseña de privacidad SNMP v3
    • nombre del prototipo del grupo de equipos
    • valor de etiqueta de equipo
    • valor de macro de equipo
    • (consulte la lista completa)

En todos esos lugares, excepto en el filtro de reglas de descubrimiento de bajo nivel, se pueden usar macros LLD utilizado dentro del [contexto estático de macros de usuario] (/manual/config/macros/user_macros_context).

Uso de funciones macro

Las funciones de macro son compatibles con macros de descubrimiento de bajo nivel (excepto en filtro de reglas de descubrimiento de bajo nivel), lo que permite extraer una cierta parte de el valor de la macro utilizando una expresión regular.

Por ejemplo, es posible que desee extraer el nombre del cliente y la interfaz número de la siguiente macro LLD para el etiquetado de eventos:

{#IFALIAS}=nombrecliente_1

Para hacerlo, la función de macro regsub se puede usar con la macro en el campo de valor de etiqueta de evento de un prototipo de disparador:

Tenga en cuenta que las comas no están permitidas en el elemento sin comillas clave parámetros, por lo que el parámetro que contiene una función de macro tiene que ser citado. la barra invertida (\) debe usarse para escapar de 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 funciones de macros, consulte: Macro funciones

Las funciones de macro son compatibles con macros de descubrimiento de bajo nivel desde Zabbix 4.0.

Notas al pie

1 En los campos marcados con 1 un solo macro tiene que llenar todo el campo. Múltiples macros en un campo o macros mezclados con texto no son compatibles.