3 Scripts de alerta personalizados

Descripción general

Si no está satisfecho con los tipos de medios existentes para enviar alertas, existe una forma alternativa de hacerlo. Puede crear un script que gestione la notificación a su manera.

Los scripts de alertas personalizados se ejecutan en el server de Zabbix. Estos scripts deben estar ubicados en el directorio especificado en el parámetro AlertScriptsPath del archivo de configuración del server.

A continuación se muestra un ejemplo de 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

Zabbix comprueba el código de salida de los comandos y scripts ejecutados. Cualquier código de salida distinto de 0 se considera un error de ejecución de comandos. 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 gestionarse explícitamente.

Configuración

Para configurar scripts de alerta personalizados como un tipo de medio:

  1. Vaya a Alerts → Media types.
  2. Haga clic en Create media type.

La pestaña Media type contiene los atributos generales del tipo de medio:

Todos los campos de entrada obligatorios están marcados con un asterisco rojo.

Los siguientes parámetros son específicos para el tipo de medio de script:

Parameter Description
Script name Introduzca 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 server AlertScriptsPath.
Script parameters Añada parámetros opcionales del script que se pasarán al script como argumentos de línea de comandos en el orden en que estén definidos.

Los parámetros del script admiten macros {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} y todas las macros compatibles con las notificaciones, así como macros de usuario.

Consulte common media type parameters para obtener detalles sobre cómo configurar mensajes predeterminados y opciones de procesamiento de alertas.

Aunque un script de alerta no utilice mensajes predeterminados, las plantillas de mensaje para los tipos de operación utilizados por este tipo de medio deben seguir definiéndose. De lo contrario, no se enviará ninguna notificación.

Si se configura más de un tipo de medio de script, estos scripts pueden procesarse en paralelo por los procesos de alerter. El número total de procesos de alerter está limitado por el parámetro StartAlerters del archivo de configuración del server.

Prueba

Para probar un tipo de medio de script configurado:

  1. Localice el script correspondiente en la lista de tipos de medio.

  2. Haga clic en Test en la última columna de la lista; se abrirá un formulario de prueba en una ventana emergente. El formulario de prueba contendrá el mismo número de parámetros que están configurados para el tipo de medio de script.

  3. Edite los valores de los parámetros del script si es necesario. La edición solo afecta al procedimiento de prueba; los valores reales no se cambiarán.

  4. Haga clic en Test.

Al probar un tipo de medio de script configurado, {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} y los macros de usuario se resolverán con sus valores, pero los macros relacionados con eventos (por ejemplo, {HOST.HOST}, {ITEM.LASTVALUE}, etc.) no se resolverán, ya que durante la prueba no hay un evento relacionado del que obtener los detalles. Tenga en cuenta que los macros dentro de {ALERT.SUBJECT} y {ALERT.MESSAGE} tampoco se resolverán. Por ejemplo, si el valor de {ALERT.SUBJECT} está compuesto por "Problem: {EVENT.NAME}", entonces el macro {EVENT.NAME} no se resolverá.

Medios del usuario

Una vez configurado el tipo de medio, vaya a la sección Usuarios → Usuarios y edite el perfil de un usuario asignándole este tipo de medio. Los pasos para configurar los medios del usuario, que son comunes para todos los tipos de medio, se describen en la página Tipos de medio.

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, introduzca cualquier combinación de caracteres admitidos para omitir los requisitos de validación.