Cómo enviar alertas de Zabbix a Telegram y saber que algo falla antes de que tus usuarios te avisen
Tener un sistema de monitoreo y no recibir alertas es como instalar una alarma contra incendios y dejarla guardada en una caja fuerte.
Funciona perfecto. Hace ruido. Tiene luces. Tiene datos.
El pequeño detalle es que cuando algo se quema, nadie se entera.
Zabbix es excelente recopilando métricas, generando eventos y mostrando información de la infraestructura, pero toda esa información pierde valor si termina abandonada en un dashboard que alguien revisa “cuando tenga tiempo”.
Y todos sabemos cómo termina esa historia.
El servidor empieza a tener problemas a las 03:00 AM, Zabbix genera 200 eventos, los gráficos quedan hermosos mostrando cómo todo se fue al infierno lentamente… y a las 09:00 alguien pregunta:
“¿Alguien sabía que estaba caído?”
Sí. Zabbix sabía.
El problema es que nadie estaba mirando.
Por eso una de las primeras integraciones que normalmente se implementan en una plataforma de monitoreo es un canal de alertas efectivo.
En este caso utilizaremos Telegram.
¿Por qué Telegram?
Porque funciona, es rápido, está disponible prácticamente en cualquier teléfono y no requiere montar otra plataforma completa solamente para enviar un mensaje diciendo:
“El disco /var tiene 95% de uso”.
Esta guía explica cómo integrar Zabbix con Telegram utilizando el webhook oficial, permitiendo enviar alertas de problemas, recuperaciones y eventos importantes directamente a un chat personal o grupo.
"Ok, basta de cháchara, como decía mi abuela: dos cucharadas y a la papa. Vamos al grano."
¿Qué vamos a configurar?
La gracia de esta integración es mantenerla simple:
Zabbix detecta un problema
→ dispara la acción correspondiente
→ el webhook envía la alerta a la API de Telegram
→ el bot entrega el mensaje al chat configurado
Sin inventar otra infraestructura paralela, sin servidores adicionales y sin crear otro problema que después tengamos que monitorear. Porque bastante tenemos ya con los problemas reales. 😄
Requisitos previos
Necesitamos:
- Zabbix 5.0 o superior.
- Recomendado: Zabbix 7.4.
- Una cuenta activa de Telegram.
- Acceso administrativo a la interfaz web de Zabbix.
- Acceso al servidor Zabbix para realizar pruebas.
- Conectividad HTTPS desde Zabbix hacia Internet.
- Café, no se olviden del café.
El servidor Zabbix debe poder comunicarse con:
https://api.telegram.org
Fase 1: Configuración en Telegram
Primero necesitamos crear el bot que funcionará como intermediario entre Zabbix y Telegram.
Es simplemente una cuenta automatizada con acceso mediante API.
Requisito: Debes tener tu telefono/cuenta registrada en Telegram, con ese usuario vamos a hacer los pasos siguientes.
1.1 Crear un nuevo bot con BotFather
Telegram utiliza un bot especial llamado BotFather para crear y administrar bots.
-
Abre Telegram. (idealmente en un PC, anda a https://web.telegram.org/ )
-
Busca:
@BotFather
-
Inicia una conversación.
-
Ejecuta:
/newbot
BotFather solicitará dos datos:
Nombre visible del bot:
Ejemplo:
OrangeBox Monitoreo
Nombre de usuario:
Debe ser único y terminar en:
bot
Ejemplo:
OrangeBox_Zabbix_bot
Al finalizar, BotFather entregará un token similar a:
1234567890:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Guarda este token.
Importante:
Este token es una credencial de acceso a la API del bot.
No lo publiques. No lo subas a Git. No lo dejes en capturas de pantalla.
Si alguien obtiene ese token puede utilizar tu bot para enviar mensajes.
1.2 Obtener el Chat ID
Zabbix necesita saber dónde enviar las alertas.
Telegram identifica cada destino mediante un número llamado Chat ID.
Chat personal
Para obtener tu Chat ID personal:
- Abre Telegram.
- Busca:
@myidbot
- Ejecuta:
/getid
El bot responderá con un número similar a:
123456789
Luego debes iniciar conversación con tu bot:
Ejemplo:
@OrangeBox_Zabbix_bot
Envía:
/start
Esto es necesario porque Telegram no permite que un bot envíe mensajes privados a un usuario que nunca inició conversación con él.
Grupo de Telegram
Para enviar alertas a un grupo:
-
Crea o utiliza el grupo donde recibirás las alertas.
-
Agrega:
@myidbot
y agrega también:
@OrangeBox_Zabbix_bot
- Dentro del grupo ejecuta:
/getgroupid@myidbot
Obtendrás un identificador similar a:
-5151681762
Los grupos utilizan números negativos.
Luego ejecuta:
/start@OrangeBox_Zabbix_bot
Con esto Telegram permitirá que el bot interactúe con el grupo.
Fase 2: Configuración en Zabbix
Ahora viene la parte donde Zabbix deja de mirar silenciosamente los problemas y empieza a avisarnos.
Un monitoreo que solamente acumula datos y gráficos bonitos es básicamente un Excel con esteroides.
Vamos a configurar:
- El Media Type de Telegram.
- El usuario que recibirá las alertas.
- Las acciones que dispararán los mensajes.
2.1 Importar o verificar el Media Type de Telegram
Zabbix incluye un webhook oficial para Telegram.
Primero debemos verificar que exista.
En la interfaz web de Zabbix:
Ir a:
Alerts → Media types // Alertas → Tipos de medios
Buscar:
Telegram
Si no existe:
- Descargar el Media Type oficial desde el repositorio de Zabbix.
- Importar el archivo YAML.
- Guardar la configuración.
El Media Type es el componente encargado de tomar la información del evento generado por Zabbix y enviarla mediante la API de Telegram.
2.2 Configurar los parámetros del Webhook
Abrir el Media Type:
Telegram
Clónalo o cópialo, no edites la plantilla que viene por defecto (porque normalmente vas a tener varios grupos a los que mandar distintas alertas, por grupos de Hosts, severidad de la alerta, escalado, etc.)
Configura los siguientes parámetros:
api_token
Valor:
TOKEN_ENTREGADO_POR_BOTFATHER
Este es el token generado cuando creamos el bot.
Ejemplo:
1234567890:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Configurar también:
api_parse_mode
Valor recomendado:
html
Esto permite que los mensajes enviados por Zabbix utilicen formato HTML.
Por ejemplo:
- Negritas.
- Separación de secciones.
- Mejor lectura en dispositivos móviles.
El parámetro:
api_chat_id
Debe mantenerse como:
{ALERT.SENDTO}
No debemos escribir aquí el Chat ID.
Zabbix lo reemplazará automáticamente usando el valor configurado en el usuario.
Importante:
No modificar otros parámetros del webhook.
Campos como:
event_source
event_value
event_update_status
event_nseverity
son utilizados internamente por Zabbix.
Si empiezas a modificar cosas sin saber qué hacen, Zabbix tiene una habilidad especial para parecer que todo está bien hasta que llega el primer incendio.
2.3 Activar el Media Type
En la parte superior del Media Type:
Marcar:
Enabled
Guardar los cambios:
Update
Con esto Telegram queda disponible como método de envío.
2.4 Probar la conexión con Telegram
Antes de configurar usuarios y acciones conviene validar que el servidor Zabbix puede comunicarse con Telegram.
Desde el servidor Zabbix ejecutar:
curl "https://api.telegram.org/botTOKEN_AQUI/getMe"
Reemplazar:
TOKEN_AQUI
por el token real entregado por BotFather.
Una respuesta correcta debería incluir:
"ok":true
y la información del bot creado.
Ejemplo:
{
"ok": true,
"result": {
"id": 1234567890,
"is_bot": true,
"first_name": "OrangeBox Monitoreo"
}
}
Si falla:
- Revisar salida a Internet.
- Revisar DNS.
- Revisar proxy si existe.
- Revisar que el token sea correcto.
Antes de revisar Zabbix durante una hora, confirmar que simplemente puedes llegar a Telegram.
A veces el problema no está en el monitoreo.
Está en que el servidor no puede salir ni a comprar pan.
2.5 Configurar el usuario de Zabbix
Ahora debemos indicarle a Zabbix quién recibirá las alertas.
Si las alertas van a un grupo de Telegram, no hay que llenar Zabbix de usuarios con el mismo Chat ID como si fuera una lista de asistencia.
basta con que un usuario de Zabbix (por ejemplo Admin) tenga configurado el medio Telegram apuntando al grupo. Después, quienes necesiten ver las alertas se agregan directamente al grupo de Telegram.
Zabbix manda el mensaje una vez al grupo y Telegram se encarga de repartirlo a los integrantes.
Ir a:
Users // Usuarios
o:
Administration → Users
Seleccionar el usuario que recibirá las notificaciones.
Ejemplo:
Admin
Ir a la pestaña:
Media
Seleccionar:
Add
Configurar:
| Campo | Valor |
|---|---|
| Type | Telegram |
| Send to | Chat ID obtenido anteriormente |
| When active | 1-7,00:00-24:00 |
| Use if severity | All |
| Status | Enabled |
Ejemplo para grupo (los ID de grupo tienen un número negativo):
-5151681762
Ejemplo para usuario:
123456789
Guardar:
Add
y luego:
Update
Ahora Zabbix sabe dónde enviar las alertas para ese grupo o usuario.
Fase 3: Crear la acción de alertas
Tener Telegram configurado no significa que Zabbix vaya a enviar mensajes mágicamente.
Todavía debemos decirle:
“Cuando ocurra un problema, avisa por aquí”.
Esto se realiza mediante las Actions.
3.1 Crear una nueva acción
Ir a:
Alerts → Actions → Trigger actions // Alertas → Acciones → Acciones de Iniciador
Seleccionar:
Create action
En la pestaña:
Action
Configurar:
Nombre:
Ejemplo:
Alertas por Telegram
Condiciones:
Aquí depende del diseño de monitoreo.
Puedes dejarlo vacío para recibir todos los eventos.
O agregar filtros:
Ejemplo:
- Solo servidores críticos.
- Solo ciertos grupos.
- Solo problemas con severidad Warning o superior.
Para comenzar, dejarlo sin condiciones ayuda a validar que todo funciona.
Activar:
Enabled
3.2 Configurar operaciones
Abre la “acción” que acabas de crear y anda a la pestaña:
Operations
En:
Default operations
Seleccionar:
Add
Configurar:
| Campo | Valor |
|---|---|
| Operation type | Send message to users |
| Users | Usuario configurado anteriormente |
| Send only to | Telegram |
También puedes enviar a grupos:
Send message to user groups
y seleccionar:
Zabbix administrators
Guardar:
Add
3.3 Configurar mensajes de recuperación
Las alertas importantes no solamente deben avisar cuando algo falla.
También deben avisar cuando vuelve.
Porque recibir:
"Servidor caído"
a las 03:00am y nunca saber si volvió es una experiencia maravillosa, Especialmente cuando al día siguiente tu reloj Garmin decide hacerte bullying y recordarte que ni dormir te sale bien.
Debajo de la operación que acabamos de crear está la sección:
Recovery operations
Agregar la misma operación:
Send message to users
Seleccionar:
Telegram
Guardar.
Ahora tendremos:
PROBLEM:
🔴 Servidor caído
RECOVERY:
🟢 Servidor recuperado
3.4 Guardar la acción
Finalmente:
Add
La acción queda creada.
A partir de ahora, cualquier evento que coincida con las condiciones configuradas será enviado por Telegram.
Fase 4: Verificación y pruebas
Una integración de alertas no está terminada porque el botón de guardar funcionó.
Está terminada cuando un problema real genera una alerta, llega al destino correcto y además avisa cuando el problema desaparece.
4.1 Probar el envío de alertas
Antes de dar por terminada la configuración, es recomendable generar una alerta real para comprobar que todo funciona correctamente:
Zabbix 7.4 no permite cambiar manualmente el estado de un trigger normal a
PROBLEM, por lo que debemos provocar una condición real que active una alerta.
Opción 1: Detener temporalmente el agente Zabbix
Si tienes un host de laboratorio o un servidor donde puedas hacer una prueba controlada:
Detén el agente:
systemctl stop zabbix-agent
o:
systemctl stop zabbix-agent2
Después de unos minutos, Zabbix debería detectar que el host dejó de responder y generar una alerta.
Cuando termines la prueba, vuelve a iniciar el servicio:
systemctl start zabbix-agent
o:
systemctl start zabbix-agent2
Opción 2: Generar una alerta de espacio en disco
Otra alternativa es utilizar un filesystem monitoreado y provocar temporalmente un consumo de espacio.
No pasa nada, a menos que actualices el kernel o el grub, ningún archivo en /boot se va a ver afectado, pero recuerda borrar este archivo después de la prueba.
Por ejemplo, si /boot está monitoreado:
dd if=/dev/zero of=/boot/test-alerta.img bs=1M count=500
o más simple (mismo resultado):
cat /dev/zero > /boot/test-alerta.img
Espera a que Zabbix actualice la métrica y genere el evento de espacio disponible bajo.
Después elimina el archivo:
rm -f /boot/test-alerta.img
y espera la recuperación automática del trigger.
Revisar el resultado en Zabbix
Después de generar la condición:
- vamos a:
Monitorización → Problemas // o al Dashboard general
-
Verifica que el evento aparezca como
PROBLEM. -
Revisa:
Informes → Registro de acciones
Ahí puedes confirmar si la acción fue ejecutada correctamente:
- Sent: Zabbix envió la notificación correctamente.
- Failed: El envío falló. Revisa el detalle del error.
Finalmente confirma que la alerta llegó al chat de Telegram configurado.
Una vez que confirmes que las alertas funcionan, elimina cualquier archivo de prueba o vuelve a dejar los servicios del agente zabbix en su estado original.
4.2 Revisar el Action Log
Después de generar el evento debemos verificar que Zabbix intentó enviar el mensaje.
Ir a:
Reports → Action log
Buscar la acción creada anteriormente:
Alertas por Telegram
Aquí veremos el resultado del envío.
Estados comunes:
Sent
Significa que Zabbix entregó correctamente el mensaje al Media Type.
La comunicación entre Zabbix y Telegram funcionó.
Failed
El envío falló.
En ese caso revisar el detalle del error.
Los problemas más comunes son:
- Token incorrecto.
- Chat ID incorrecto.
- Bot sin permisos en el grupo.
- Falta de conectividad desde el servidor Zabbix.
- Error en la configuración del webhook.
4.3 Verificar recepción en Telegram
Si todo está correcto, deberías recibir un mensaje similar a:
Problem started
Host:
servidor-web01
Problem:
High CPU utilization
Severity:
Warning
Y cuando la condición vuelva a la normalidad:
Problem resolved
Host:
servidor-web01
Recovery time:
10:45:22
La información exacta dependerá de la plantilla y del mensaje configurado en Zabbix.
Resolución de problemas comunes
Error: “No media defined for user”
Causa:
El usuario de Zabbix no tiene configurado ningún medio de Telegram.
Solución:
Ir a:
Users → Usuario → Media
Agregar:
Type:
Telegram
Configurar:
Send to:
Chat ID
Guardar los cambios.
Error: “Unauthorized” al probar el token
Causa:
El token entregado por BotFather no es válido.
Puede ocurrir porque:
- Está mal copiado.
- Fue revocado.
- El bot fue eliminado.
Solución:
Anda a telegram y busca el chat con el BotFather:
@BotFather
Envía el mensaje:
/mybots
Selecciona el bot:
API Token
Generar un nuevo token.
Actualizar el Media Type en Zabbix con el token nuevo.
No aparece ningún intento en Action Log
Causa:
La acción nunca fue ejecutada.
Revisar:
- La acción está habilitada.
- Las condiciones coinciden con el evento.
- El trigger realmente cambió a PROBLEM.
- El usuario tiene configurado Telegram.
Para descartar problemas, temporalmente se puede dejar la acción sin condiciones.
Action Log muestra “Sent”, pero no llega nada a Telegram
Causa:
Zabbix entregó el mensaje al webhook, pero Telegram no pudo entregarlo.
Revisar:
-
Que el Chat ID sea correcto.
-
Que el bot haya iniciado conversación.
Para chat privado:
/start
Para grupo:
/start@NombreDelBot
- Que el bot siga siendo miembro del grupo.
El servidor Zabbix no tiene salida a Internet
Causa:
El servidor no puede comunicarse con:
api.telegram.org
Probar desde el servidor Zabbix:
curl "https://api.telegram.org/botTOKEN/getMe"
Si falla:
Revisar:
- Resolución DNS.
- Firewall.
- Proxy HTTP/HTTPS.
- Reglas de salida.
Notas finales
Algunos detalles importantes:
- El bot no necesita responder comandos constantemente para funcionar.
- Solo es necesario iniciar conversación una vez para permitir el envío de mensajes.
- Un mismo bot puede enviar alertas a múltiples chats.
- Puedes crear diferentes usuarios de Zabbix con diferentes Chat ID.
- Puedes crear múltiples acciones para separar alertas críticas, advertencias o sistemas específicos.
Por ejemplo:
Servidor crítico:
Telegram grupo operaciones
Aplicaciones:
Telegram equipo desarrollo
Alertas menores:
Correo electrónico
La idea no es mandar absolutamente todo, Porque en la práctica terminas creando otro grupo de Telegram que todos silencian, igual que el cuento de Pedrito y el lobo. Las primeras alertas generan preocupación, las siguientes 50 generan molestia y después de la alerta número 100 nadie le da pelota. El día que realmente pase algo grave, el mensaje queda perdido entre “CPU alta”, “disco al 90%” y otras 200 notificaciones que nadie leyó.
El objetivo es recibir información útil cuando realmente importa.
Automatiza tu monitoreo antes de que el problema llegue al usuario
Implementar monitoreo correctamente no consiste solamente en instalar el servidor y esperar que aparezcan gráficos.
La parte importante está en definir qué medir, cómo detectar problemas y cómo hacer que la información llegue a las personas correctas antes de que alguien reporte:
“El sistema está lento desde hace una hora”.
En OrangeBox trabajamos con implementaciones de monitoreo, automatización y observabilidad para infraestructura Linux, VMware, Zabbix y servicios críticos.
Ayudamos con:
- Implementación y configuración de Zabbix.
- Creación de templates personalizados.
- Integración de alertas con Telegram, correo y otras plataformas.
- Automatización de tareas operativas.
- Dashboards orientados a operación real.
Porque un buen monitoreo no es tener más gráficos.
Es enterarse del problema antes de que llegue el primer ticket.
¿Necesitas ordenar tu monitoreo?
Revisa nuestros servicios:
-
Monitoreo y observabilidad: https://www.orangebox.cl/servicios/monitoreo-observabilidad/
-
Servicios administrados: https://www.orangebox.cl/servicios/servicios-administrados/
Referencias
Documentación oficial de Zabbix - Telegram webhook:
https://www.zabbix.com/integrations/telegram
Telegram Bot API: