Si no está satisfecho con los tipos de medios existentes para enviar alertas, existe una forma alternativa de hacerlo. Puede crear un script que manejará la notificación a su manera.
Los scripts de alerta personalizados se ejecutan en el servidor Zabbix. Estos scripts deben estar ubicados en el directorio especificado en el parámetro del archivo de configuración del servidor AlertScriptsPath
.
A continuación se muestra un ejemplo de un script de alerta personalizado:
#!/bin/bash
to=$1
subject=$2
body=$3
host=$4
value=$5
cat <<EOF | mail -s "$subject" "$to"
$body
Host: $host
Value: $value
EOF
A partir de la versión 3.4, Zabbix comprueba el código de salida de los comandos y scripts ejecutados. Cualquier código de salida que sea diferente de 0 se considera un error de ejecución del comando. En tales casos, Zabbix intentará repetir la ejecución fallida.
Las variables de entorno no se conservan ni se crean para el script, por lo que deben manejarse explícitamente.
Para configurar scripts de alerta personalizados como tipo de medio:
La pestaña Tipo de medio contiene atributos generales de tipo de medio:
Todos los campos de entrada obligatorios están marcados con un asterisco rojo.
Los siguientes parámetros son específicos del tipo de medio de script:
Parámetro | Descripción |
---|---|
Nombre del script | Ingrese el nombre del archivo de script (por ejemplo, notification.sh) que se encuentra en el directorio especificado en el parámetro de configuración del servidor AlertScriptsPath . |
Parámetros de script | Agregue parámetros de script opcionales que se pasarán al script como argumentos de línea de comandos en el orden en que se definen. Los parámetros de script admiten {ALERT.SENDTO}, {ALERT.SUBJECT }, las macros {ALERT.MESSAGE} y, desde Zabbix 6.4.0, todas las macros que son compatibles con las notificaciones, así como las macros de usuario. |
Consulte parámetros comunes de tipo de medios para obtener detalles sobre cómo configurar mensajes predeterminados y opciones de procesamiento de alertas.
Incluso si un script de alerta no utiliza mensajes predeterminados, todavía se deben definir las plantillas de mensajes para los tipos de operación utilizados por este tipo de medio. De lo contrario, no se enviará ninguna notificación.
Si se configura más de un tipo de medio de secuencia de comandos, los procesos de alerta pueden procesar estas secuencias de comandos en paralelo. El número total de procesos de alerta está limitado por el parámetro del archivo de configuración del servidor StartAlerters
.
Para probar un tipo de medio de secuencia de comandos configurado:
Localice el script relevante en la lista de los tipos de medios.
Haga clic en Prueba en la última columna de la lista; Se abrirá un formulario de prueba en una ventana emergente. El formulario de prueba contendrá la misma cantidad de parámetros que están configurados para el tipo de medio de secuencia de comandos.
Edite los valores de los parámetros del script si es necesario. La edición sólo afecta al procedimiento de prueba; los valores reales no se cambiarán.
Haga clic en Probar.
Al probar un tipo de medio de secuencia de comandos configurado, {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} y las macros de usuario se resolverán según sus valores. pero las macros que están relacionadas con eventos (por ejemplo, {HOST.HOST}, {ITEM.LASTVALUE}, etc.) no se resolverán, ya que durante las pruebas no hay ningún evento relacionado del cual obtener los detalles. Tenga en cuenta que las macros dentro de {ALERT.SUBJECT} y {ALERT.MESSAGE} tampoco se resolverán. Por ejemplo, si el valor de {ALERT.SUBJECT} se compone de "Problema: {EVENT.NAME}", la macro {EVENT.NAME} no se resolverá.
Una vez configurado el tipo de medio, vaya a la sección Usuarios → Usuarios y edite un perfil de usuario asignando este tipo de medio al usuario. Los pasos para configurar los medios de usuario, que son comunes para todos los tipos de medios, se describen en la página Tipos de medios.
Tenga en cuenta que al definir los medios del usuario, el campo Enviar a no puede estar vacío. Si este campo no se utiliza en el script de alerta, ingrese cualquier combinación de caracteres admitidos para evitar los requisitos de validación.