3 Scripts de alerta personalizados
Descripción general
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 alerta 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:
- Vaya a Alerts → Media types.
- 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 del 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 admitidas en notificaciones, así como macros de usuario. |
Consulte los parámetros comunes de los tipos de medio 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 usados 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 alerter.
El número total de procesos 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:
-
Localice el script correspondiente en la lista de tipos de medio.
-
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.
-
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.
-
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 ningún evento relacionado del que obtener los detalles. Tenga en cuenta que las macros dentro de las macros {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á.
Medios de usuario
Una vez configurado el tipo de medio, vaya a la sección Users → Users y edite el perfil de un 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 Media types.
Tenga en cuenta que, al definir los medios de 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.