Se encuentra viendo la documentación de la versión en desarrollo, puede estar incompleta.
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 en Zabbix para una mayor flexibilidad, además de las macros compatibles de forma predeterminada.

Las macros de usuario pueden definirse a nivel global, de plantilla y de equipo. Estas macros tienen una sintaxis especial:

{$MACRO}

Zabbix resuelve las macros según la siguiente precedencia:

  1. macros a nivel de equipo (se comprueban primero)
  2. macros definidas para las plantillas de primer nivel del equipo (es decir, plantillas vinculadas directamente al equipo), ordenadas por ID de plantilla
  3. macros definidas para las plantillas de segundo nivel del equipo, ordenadas por ID de plantilla
  4. macros definidas para las plantillas de tercer nivel del equipo, ordenadas por ID de plantilla, etc.
  5. macros globales (se comprueban al final)

En otras palabras, si una macro no existe para un equipo, Zabbix intentará encontrarla en las plantillas del equipo de profundidad creciente. Si aún no se encuentra, se utilizará una macro global, si existe.

Si una macro con el mismo nombre existe en varias plantillas vinculadas del mismo nivel, se utilizará la macro de la plantilla con el ID más bajo. Por lo tanto, tener macros con el mismo nombre en varias plantillas es un riesgo de configuración.

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

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

Las macros de usuario pueden utilizarse en:

  • nombre de la métrica
  • parámetro de clave de la métrica
  • intervalos de actualización de la métrica e intervalos flexibles
  • nombre y descripción del disparador
  • parámetros y constantes de expresión del disparador (ver ejemplos)
  • muchas otras ubicaciones - consulte la lista completa
Casos de uso comunes de macros globales y de equipo
  • utilizar una macro global en varios lugares; luego cambiar el valor de la macro y aplicar los cambios de configuración a todos los lugares con un solo clic
  • aprovechar las plantillas con atributos específicos del equipo: contraseñas, números de puerto, nombres de archivos, 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 más información, consulte Comprobaciones pasivas y activas del agente.

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 estar 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 se utilizan macros de usuario en métricas o disparadores de plantilla, 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 se utilizan macros de usuario en expresiones de disparador, 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 métrica, función, operador u otra expresión de disparador (las macros secretas no pueden usarse en expresiones de disparador)
  • si se utilizan macros de usuario 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 equipo en la clave de la métrica "Estado del demonio SSH":

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

Esta métrica puede asignarse a varios equipos, siempre que el valor de {$SSH_PORT} esté definido en esos equipos.

Ejemplo 2

Uso de macro a nivel de equipo en el disparador "La carga de CPU es demasiado alta":

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

Este disparador se crearía en la plantilla, no se editaría en equipos individuales.

Si desea utilizar la cantidad de valores como parámetro de la función (por ejemplo, max(/equipo/clave,#3)), incluya el símbolo de almohadilla en la definición de la macro así: ALGÚN_PERIODO => #3

Ejemplo 3

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

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

Tenga en cuenta que una macro puede usarse como parámetro de una función de disparador, en este ejemplo la función min().

Ejemplo 4

Sincronizar la condición de indisponibilidad del agente con el intervalo de actualización de la métrica:

  • defina la macro {$INTERVAL} y utilícela en el intervalo de actualización de la métrica;
  • utilice {$INTERVAL} como parámetro del disparador de indisponibilidad del agente:

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

Ejemplo 5

Centralizar la configuración del horario laboral:

  • crear una macro global {$WORKING_HOURS} igual a 1-5,09:00-18:00;
  • usarla en el campo Horario laboral en AdministraciónGeneralInterfaz gráfica;
  • usarla en el campo Cuando está activo en UsuariosUsuarios, pestaña Medios de un usuario;
  • usarla para configurar una recogida de métricas más frecuente durante el horario laboral:

  • usarla en la condición de acción Periodo de tiempo;
  • ajustar el horario laboral en AdministraciónMacros, si es necesario.
Ejemplo 6

Utilice la macro de prototipo de equipo para configurar métricas para los equipos descubiertos:

  • asigne la plantilla Generic SNMPv2 al prototipo de equipo;
  • utilice {$SNMPVALUE} en el campo SNMP OID de las métricas de la plantilla Generic SNMPv2.

Contexto de macro de usuario

Consulte macros de usuario con contexto.