Alertas por Telegram desde tu servidor: configuración paso a paso
- telegram
- alertas
- bash
- cron
- servidor
- infraestructura
Tu servidor está funcionando 24/7, pero ¿sabes cuándo el disco duro se llena, un servicio crítico se cae o un proceso consume demasiada memoria? Esperar a que un cliente reporte un problema es una mala estrategia. Necesitas un sistema de alertas proactivo que te avise antes de que el problema escale. Configurar alertas por Telegram desde tu VPS es una solución sencilla, rápida y efectiva para recibir notificaciones importantes directamente en tu móvil o en un grupo de equipo. Solo necesitas Bash, Cron y un bot de Telegram.
La necesidad de saber qué ocurre en tu VPS
No puedes estar pegado a la consola de tu servidor todo el día. Si no implementas algún tipo de monitorización, estás operando a ciegas. Un pico de tráfico, un ataque de fuerza bruta o un error en una aplicación pueden pasar desapercibidos hasta que es demasiado tarde.
La diferencia entre reaccionar y anticipar está en tener los ojos adecuados en tu infraestructura. Una alerta a tiempo puede ahorrarte horas de depuración y, lo que es más importante, evitar la caída de tus servicios. Para una visión más amplia, echa un vistazo a cómo implementar una monitorización VPS básica.
Configurando el bot de Telegram y obteniendo el Chat ID
El primer paso es crear un bot de Telegram. Busca a @BotFather en Telegram, inicia una conversación y usa el comando /newbot. Te guiará para elegir un nombre y un username. Al finalizar, te dará un HTTP API Token — guárdalo bien, es la clave de tu bot.
Una vez creado el bot, debes iniciar una conversación con él. Telegram no permite a los bots iniciar conversaciones. Después, para que tu bot pueda enviarte mensajes, necesitas obtener tu CHAT_ID. Abre tu navegador y llama a esta URL, reemplazando [TU_BOT_TOKEN] con el token que te dio BotFather:
curl "https://api.telegram.org/bot[TU_BOT_TOKEN]/getUpdates"
Busca en la respuesta JSON el campo "chat", dentro del cual encontrarás "id": [TU_CHAT_ID]. Este será tu CHAT_ID. Si quieres enviar alertas a un grupo, crea el grupo, añade tu bot y repite el getUpdates después de enviar un mensaje al grupo — el CHAT_ID del grupo aparecerá también en la respuesta.
Enviando mensajes desde Bash: el script base
Con tu BOT_TOKEN y CHAT_ID, ya puedes enviar mensajes de texto a Telegram desde la línea de comandos de tu servidor. Aquí tienes un script Bash simple que puedes usar:
#!/bin/bash
BOT_TOKEN="TU_BOT_TOKEN_AQUI"
CHAT_ID="TU_CHAT_ID_AQUI"
MESSAGE="$1" # El mensaje será el primer argumento del script
curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
-d chat_id="$CHAT_ID" \
-d text="$MESSAGE" \
-d parse_mode="HTML"
Guarda este script como send_telegram.sh, dale permisos de ejecución (chmod +x send_telegram.sh) y pruébalo: ./send_telegram.sh "Hola desde mi servidor!". Deberías recibir el mensaje en Telegram al instante.
Integrando las alertas con Cron para monitorización
Ahora que puedes enviar mensajes, el siguiente paso es integrar este script con cron para automatizar la monitorización. cron te permite ejecutar comandos o scripts a intervalos definidos. Por ejemplo, puedes querer que el servidor te avise si el uso de disco supera un umbral.
Edita tu crontab con crontab -e y añade una línea como esta:
# Cada 5 minutos, comprueba el uso de disco. Si > 90%, envía alerta.
*/5 * * * * df -h | grep '/$' | awk '{ print $5 }' | sed 's/%//g' | \
awk '{ if($1 > 90) system("/ruta/a/send_telegram.sh \"<b>ALERTA:</b> Disco al 90% en $(hostname)! Uso actual: "$1"%\"") }'
Este ejemplo comprueba el uso del disco raíz cada 5 minutos. Si supera el 90%, envía una alerta a Telegram. Puedes adaptar el comando df por cualquier otra comprobación: el estado de un servicio (systemctl is-active --quiet mi-servicio || ...), la carga del sistema, o incluso buscar patrones en los logs. Para gestionar los logs de forma eficiente, te recomiendo leer sobre la gestión de logs en VPS con rotación.
Beneficios y consideraciones de las alertas por Telegram
Implementar alertas por Telegram es una decisión con claros beneficios, pero también introduces nuevas dependencias y consideraciones.
Beneficios: Recibes alertas en tiempo real en tu dispositivo móvil, estés donde estés, lo que proporciona inmediatez. El coste es bajo, ya que Telegram es gratuito y el script no requiere recursos significativos. Te enteras de los problemas antes de que afecten a los usuarios o se conviertan en fallos críticos, lo que permite proactividad. La configuración es directa y no necesitas instalar software de monitorización complejo, lo que aporta simplicidad.
Consideraciones:
Existe una dependencia de Telegram; si la API de Telegram falla o hay problemas de conectividad, las alertas no llegarán. La seguridad del token es un punto crítico, ya que el BOT_TOKEN es sensible y debe estar bien protegido en el servidor, no expuesto en repositorios públicos. Sin una buena configuración, puedes acabar con demasiadas alertas que se ignoran, por lo que es importante definir umbrales sensatos para la gestión de ruido. Finalmente, esta es una solución reactiva simple; no ofrece métricas históricas, dashboards o correlación de eventos como un sistema de monitorización completo, lo que representa una limitación.
Con este sistema tienes una capa de seguridad básica para tu servidor. Una vez que tengas tus alertas configuradas, el siguiente paso es asegurar que el resto de tu infraestructura está protegida. No olvides implementar backups automáticos en tu VPS con rsync y mantener al día las actualizaciones del sistema en tu VPS de producción para evitar vulnerabilidades.
Técnico freelance especializado en desarrollo a medida, automatizaciones con IA y gestión técnica para negocios en España. Más sobre mí →
¿Necesitas que alguien se ocupe de tu web?
Me encargo de que tu web funcione, esté segura y actualizada. Backups, actualizaciones y soporte directo. Planes desde 49 €/mes.