Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

2 Macros de usuario

Descripción general

Las macros de usuario son compatibles con Zabbix para una mayor flexibilidad, además a las macros compatibles fuera de la caja.

Las macros de usuario se pueden definir a nivel global, de plantilla y de host. Estas macros tienen una sintaxis especial:

{$MACRO}

Zabbix resuelve macros según la siguiente prioridad:

  1. macros a nivel de host (comprobadas primero)
  2. macros definidas para plantillas de primer nivel del host (es decir, plantillas vinculadas directamente al host), ordenadas por ID de plantilla
  3. macros definidas para plantillas de segundo nivel del host, ordenadas por ID de plantilla
  4. macros definidas para plantillas de tercer nivel del host, ordenadas por ID de plantilla, etc.
  5. macros globales (verificadas por última vez)

En otras palabras, si no existe una macro para un host, Zabbix intentará encontrarlo en las plantillas de host de mayor profundidad. Si aún no se encuentra, una macro global se utilizara, si existe.

::: nota de advertencia Si existe una macro con el mismo nombre en varias plantillas vinculadas del mismo nivel, la macro de la plantilla con el ID más bajo se utilizara. Tener así macros con el mismo nombre en múltiples plantillas es un riesgo de configuración. :::

Si Zabbix no puede encontrar una macro, la macro no se resolverá.

::: nota importante Las macros (incluidas las macros de usuario) quedan sin resolver en la sección de Configuración (por ejemplo, en la lista de activadores) para hacer que la configuración compleja sea más transparente. :::

Las macros de usuario se pueden utilizar en:

  • nombre del item
  • parámetro clave del item
  • intervalos de actualización de artículos e intervalos flexibles
  • nombre y descripción del activador
  • desencadenar parámetros y constantes de expresión (ver ejemplos)
  • muchos otros lugares - ver el completo lista
Casos de uso comunes de macros globales y de host
  • utilizar una macro global en varios lugares; luego cambia el valor de la macro y aplique cambios de configuración a todas las ubicaciones con un solo clic
  • aproveche las plantillas con atributos específicos del host: contraseñas, números de puerto, nombres de archivo, expresiones regulares, etc.

Es recomendable utilizar macros de equipo en lugar de macros globales porque agregar, actualizar o eliminar macros globales fuerza una actualización incremental de la configuración para todos los equipos. Para obtener más información, consulte Comprobaciones de agentes activos y pasivos.

Configuración

Para definir macros de usuario, vaya a la ubicación correspondiente en la interfaz web:

  • para macros globales, visite Administración → Macros
  • para macros a nivel de equipo y plantilla, abra las propiedades del equipo o plantilla y busque la pestaña Macros

Una macro de usuario tiene los siguientes atributos:

Parámetro Descripción
Macro Nombre de la macro. El nombre debe ir entre llaves y comenzar con un signo de dólar.
Ejemplo: {$FRONTEND_URL}. Los siguientes caracteres están permitidos en los nombres de macro: A-Z (solo mayúsculas), 0-9, _, .
Valor Valor de la macro. Se admiten tres tipos de valor:
Texto (por defecto): valor en texto plano
Texto secreto: el valor se oculta con asteriscos
Secreto de Vault: el valor contiene una ruta/consulta a un secreto de vault.

Para cambiar el tipo de valor, haga clic en el botón al final del campo de entrada de valor.

La longitud máxima de un valor de macro de usuario es de 2048 caracteres.
Descripción Campo de texto utilizado para proporcionar más información sobre esta macro.

Al configurar macros de usuario, tenga en cuenta los siguientes comportamientos específicos del contexto:

  • si las macros de usuario se utilizan en elementos o disparadores de plantillas, considere agregar esas macros también a la plantilla (incluso si están definidas globalmente); de esa manera, las macros de tipo Texto funcionarán como se espera después de exportar la plantilla a XML e importarla en otro sistema (los valores de macros secretas no se exportan)
  • si las macros de usuario se utilizan en expresiones de disparadores, esas macros solo se resolverán si hacen referencia a un parámetro o constante; NO se resolverán si hacen referencia a un equipo, clave de elemento, función, operador u otra expresión de disparador (las macros secretas no pueden usarse en expresiones de disparador)
  • si las macros de usuario se utilizan en un equipo que tiene una regla de descubrimiento de bajo nivel con prototipos de equipo, los equipos descubiertos heredarán todas las macros de usuario definidas en ese equipo

Ejemplos

Ejemplo 1

Uso de macro a nivel de host en la clave del elemento "Estado del demonio SSH":

net.tcp.servicio[ssh,,{$SSH_PORT}]

Este elemento se puede asignar a varios hosts, siempre que el valor de {$SSH_PORT} está definido en esos hosts.

Ejemplo 2

Uso de macro a nivel de host en el activador "La carga de la CPU es demasiado alta":

último(/ca_001/system.cpu.load[,avg1])>{$MAX_CPULOAD}

Dicho activador se crearía en la plantilla, no se editaría en anfitriones individuales.

Si desea utilizar la cantidad de valores como la función parámetro (por ejemplo, max(/host/key,#3)), incluir marca hash en la definición de la macro así: ALGUNA_PERIODO => #3

Ejemplo 3

Uso de dos macros en el activador "La carga de la CPU es demasiado alta":

min(/ca_001/system.cpu.load[,avg1],{$CPULOAD_PERIOD})>{$MAX_CPULOAD}

Tenga en cuenta que una macro se puede utilizar como parámetro de la función de disparo, en esta función de ejemplo min().

Ejemplo 4

Sincronice la condición de indisponibilidad del agente con la actualización del artículo intervalo:

  • definir la macro {$INTERVAL} y usarla en el intervalo de actualización del artículo;
  • use {$INTERVALO} como parámetro del activador de indisponibilidad del agente:

nodata(/ca_001/agent.ping,{$INTERVALO})=1

Ejemplo 5

Centralizar la configuración de los horarios de trabajo:

  • crear una macro global {$WORKING_HOURS} igual a 1-5,09:00-18:00;
  • utilícela en el campo Tiempo de trabajo en AdministraciónGeneralGUI;
  • utilícela en el campo Cuando esté activo en AdministraciónUsuarioMedios de comunicación;
  • utilícela para configurar un sondeo de métricas más frecuentes durante el horario laboral:

  • utilícela en la condición de acción Período de tiempo;
  • ajustar el tiempo de trabajo en AdministraciónGeneralMacros, si es necesario.
Ejemplo 6

Use la macro de prototipo de host para configurar elementos para hosts descubiertos:

  • en un prototipo de host, defina la macro de usuario {$SNMPVALUE} con {#SNMPVALUE} nivel bajo descubrimiento macro como un valor:

  • asignar la plantilla Generic SNMPv2 al prototipo de host;
  • use {$SNMPVALUE} en el campo SNMP OID de Generic SNMPv2 elementos de la plantilla.

Contexto de macro de usuario

Ver macros de usuario con contexto.