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:
Zabbix resuelve las macros según la siguiente precedencia:
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:
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.
Para definir macros de usuario, vaya a la ubicación correspondiente en la interfaz web:
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:
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.
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
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().
Sincronizar la condición de indisponibilidad del agente con el intervalo de actualización de la métrica:
nodata(/ca_001/agent.ping,{$INTERVAL})=1
Centralizar la configuración del horario laboral:
1-5,09:00-18:00
;Utilice la macro de prototipo de equipo para configurar métricas para los equipos descubiertos:
Consulte macros de usuario con contexto.