Cómo enviar alertas de Zabbix a Telegram en 2025
Zabbix sigue siendo una de las herramientas de monitoreo más usadas en 2025, y Telegram un canal rápido y confiable para recibir alertas. En este tutorial actualizado te muestro cómo integrarlos paso a paso, con código listo para usar.
Zabbix es muy flexible, y hace unos días lo integré para que las alertas nos caigan en un grupo de Telegram. Así, todo el equipo puede saber qué está pasando, no solo el que está de guardia.
Hace mes y medio que estoy trabajando en una empresa que brinda servicios a la telco más grande de Uruguay. Estos servicios son de administración de plataformas, y yo específicamente estoy en el equipo de Linux. Llegué justo en el momento en que se estaba terminando la migración de Nagios a Zabbix.
Una de las cosas que había que revisar eran las alertas y cómo nos llegaban. Las de email son fáciles de configurar y ya estaban listas, pero dependiendo de cómo el usuario tenga configurada la cuenta de correo en el móvil, ese email puede “llegar” más tarde que temprano. Eso nos puede dejar en un escenario donde nos enteramos una hora después de que un servidor está caído.
Así que me puse a buscar una alternativa más dinámica y encontré que se pueden enviar las alertas de Zabbix a un chat de Telegram a través de un bot.
Paso 1: Crear el bot
Lo primero que tenemos que hacer es crear un bot en Telegram. Para esto, abrimos la aplicación y comenzamos una conversación con BotFather. Ahí le mandamos el siguiente comando:
/newbot
BotFather nos va a responder con algo así:
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
El nombre que elijamos debe terminar con la palabra bot. Por ejemplo, podemos responderle:
cduser2025bot
Enseguida recibiremos la confirmación de que el bot fue creado. El mensaje se verá parecido a este:
Done! Congratulations on your new bot. You will find it at t.me/cduser_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.
Use this token to access the HTTP API: #########
Keep your token secure and store it safely, it can be used by anyone to control your bot.
For a description of the Bot API, see this page: https://core.telegram.org/bots/api
⚠️ Importante: yo edité arriba la parte del HTTP API Token. Ese dato es privado y no lo deben compartir, porque cualquiera podría controlar su bot. Guárdenlo a mano, lo vamos a necesitar más adelante.
Lo siguiente que hice fue crear un grupo de Telegram y agregar allí al bot. Pero ojo: lo que luego vamos a necesitar es conocer el ID de ese chat en grupo. Para eso, tenemos que invitar a otro bot llamado @raw_data_bot. Apenas lo agreguemos, en unos segundos nos enviará un mensaje dentro del grupo con un contenido muy similar al siguiente:
Your chat id is -490471xxxx, your id is 5622xxxxx
Also you can send me username or joinchat link in a private message
Kisses, your bot
Lo que necesitamos aquí es el ID del chat. Así que con la API Key y el ID del chat, estamos listos para comenzar a tocar el Zabbix.
Paso 2: Bajar y configurar el script en el servidor
Ya tenemos creado nuestro bot. Ahora lo que necesitamos es descargar un script en nuestro servidor de Zabbix. Normalmente, la ruta donde debemos colocarlo es:
/usr/lib/zabbix/alertscripts
Si la carpeta alertscripts no está, la creamos y entramos.
Luego, podemos usar este simple script y guardarlo con el nombre telegram.sh
#!/usr/bin/env bash
set -euo pipefail
CHAT_ID="${1:-}"
SUBJECT="${2:-}"
MESSAGE="${3:-}"
BOT_TOKEN="${BOT_TOKEN:-AQUI_VA_TU_TOKEN}"
TEXT="$(printf "*%s*\n%s" "$SUBJECT" "$MESSAGE")"
curl -sS --fail -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
-d chat_id="${CHAT_ID}" \
--data-urlencode text="${TEXT}" \
-d parse_mode="Markdown"
No olvidemos hacerlo ejecutable, para eso, hacemos:
chmod +x telegram.sh
./telegram.sh "chat_id" "OK" "Probando"
Si llega al grupo, excelente, vamos a la parte 3, que es configurar Zabbix.
Paso 3: Configurar Zabbix
Bueno, ahora que ya tenemos nuestro script funcionando, es momento de conectarlo con Zabbix. Para eso, tenemos que crear un nuevo Media Type desde la interfaz de administración.
1: Crear el Media Type
- Ingresá a tu Zabbix web.
- Andá a Alerts → Media types.
- Hacé clic en Create media type o Selecciona el que ya viene pre configurado para Telegram.
- Cambialo desde Webhook a Script.
- Completá los campos de esta forma:
- Name: Telegram (o como quieras llamarlo)
- Type: Script
- Script name: telegram.sh (o el nombre exacto de tu archivo .sh)
- Script parameters (en este orden):
- {ALERT.SENDTO}
- {ALERT.SUBJECT}
- {ALERT.MESSAGE}

2: Asignar el Media a nuestro usuario
Lo siguiente que tenemos que hacer es configurar nuestro usuario de Zabbix para que pueda recibir las alertas por Telegram.
En mi caso, como estoy dentro del grupo de Administradores Linux en Zabbix, y además soy el administrador del grupo de Telegram, con solo agregar el Media Type a mi usuario ya es suficiente.
Para hacerlo:
- Ir a Users → Users.
- Seleccionar tu usuario.
- En la pestaña Media, hacer clic en Add.
- Completar así:
- Type: Telegram (o el nombre que le diste al Media Type)
- Send to: -100XXXXXXXXXX (acá va el chat_id que te dio RawDataBot)
- When active: como prefieras (por ejemplo, 1-7,00:00-24:00)
- Severity: las severidades que te interesen (p. ej. Disaster, High, etc.)
Una vez que lo guardás, Zabbix ya está listo para enviarte alertas a Telegram.

3: Configurar la Acción
Por último, para que las alertas lleguen efectivamente a Telegram, debemos configurar una Acción dentro de Zabbix.
- Ir a Alerts → Actions → Trigger Actions
- Hacer clic en Create action.
- En la pestaña Action, completar:
- Name: algo como Enviar alertas a Telegram.
- Conditions: (opcional) podés filtrar por severidad, host group, etc.
- En la pestaña Operations, agregar una nueva operación:
- Operation type: Send message
- Send to Users: tu usuario (o un grupo de usuarios)
- Send only to: el Media Type “Telegram”
- En los campos de texto podés definir cómo será el mensaje. Por ejemplo:
{TRIGGER.STATUS} {TRIGGER.SEVERITY} {TRIGGER.NAME} on {HOST.NAME1}
Y en el Default Message lo siguiente:
Trigger:{TRIGGER.NAME}
Trigger status:{TRIGGER.STATUS}
Trigger severity:{TRIGGER.SEVERITY}
Trigger URL:{TRIGGER.URL}
Item values:
1.{ITEM.NAME1}({HOST.NAME1}:{ITEM.KEY1}):{ITEM.VALUE1}
Item Graphic:[{ITEM.ID1}]
Ahora bien, la acción a todo esto, en mi caso quedó así, de esta manera, lo que va a hacer es que cuando se genere una alerta la va a enviar solo por Telegram al usuario indicado, en este caso, a mi.

Parte Final: Recibiendo Alertas en Telegram
Si todo salió bien, ¡ya estamos conectados! Cada vez que ocurra un problema en Zabbix, deberías recibir una alerta directamente en el grupo de Telegram que configuraste.
En mi caso particular, quedó funcionando sin problemas. Así es como se ve el mensaje:

¿Y ahora qué?
Como viste, dependiendo de la severidad configurada en el trigger, los mensajes llegan con su correspondiente icono:
⚠️ advertencia, 🔴 crítico, ✅ resuelto. Bastante práctico para saber de un vistazo qué está pasando.
Y ahora te pregunto a vos:
¿Lo probaste? ¿Te funcionó?
¿Usás otra forma para recibir alertas de Zabbix o de otras herramientas de monitoreo?
¿Tenés algún truco que quieras compartir?
Te leo 👇
Creditos imágen: Unplash