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
a=$1
asunto=$2
cuerpo=$3
anfitrión=$4
valor=$5
gato <<EOF | correo -s "$asunto" "$a"
$cuerpo
Anfitrión: $anfitrión
Valor: $valor
EOF
::: nota importante Zabbix busca 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 de 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 secuencia de comandos:
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 archivo de configuración del servidor AlertScriptsPath parámetro . |
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 todas las macros que se admiten en las notificaciones, así como las macros de usuario. |
Consulte parámetros de tipo de medios comunes para obtener detalles sobre cómo configurar mensajes predeterminados y opciones de procesamiento de alertas.
::: nota de advertencia Incluso si un script de alerta no utiliza mensajes predeterminados, aún 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á una notificación. :::
::: nota importante 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.