3 Scripts de alerta personalizados

Resumen

Si no está satisfecho con los tipos de medio 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 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

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 media type:

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

La pestaña Media type contiene los atributos generales del media type:

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

Los siguientes parámetros son específicos para el media type 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 Agregue parámetros opcionales del script que se pasarán al script como argumentos de línea de comandos en el orden en que se definan.

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

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 use mensajes predeterminados, las plantillas de mensaje para los tipos de operación utilizados por este media type deben seguir definiéndose. De lo contrario, no se enviará ninguna notificación.

Si se configura más de un media type 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.

Pruebas

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 las macros de usuario se resolverán con sus valores, pero las macros relacionadas 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 las 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 la macro {EVENT.NAME} no se resolverá.

Medio del usuario

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

Tenga en cuenta que, al definir el medio del usuario, el campo Send to 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.