Utilizando bots de Telegram para notificar caídas de webs
Desde hace unas semanas estamos probando una nueva herramienta para controlar que las webs estén en marcha: Cabot. Sí, ya sabemos que existen otras herramientas y aplicaciones para ello (como el conocido Pingdom), pero queríamos algo que tuviéramos bajo control y así llegamos a Cabot.
Esta aplicación que está desarrollada utilizando el framework Django tiene tres tipos de test: verificar un valor de un servidor Graphite, comprobar el resultado de un trabajo de Jenkins y un test HTTP. En base a los resultados de dichos tests, la aplicación envía las notificaciones pertinentes y en la instalación de base se puede elegir entre mensajes por e-mail, alertas vía Hipchat o llamadas y SMS a través de Twilio.
Configuramos algunas webs de clientes y activamos las notificaciones por e-mail. Sin embargo, tuvimos algún problema con el proveedor de correo porque los mensajes llegaban a la carpeta de Spam y nos bloqueó también el servidor de alertas por algún aluvión de mensajes...
Por ello intentamos encontrar una solución. En la oficina alguien había estado probando Slack, herramienta de moda para la comunición de grupos de trabajo y al ver que existía un plugin para Cabot, lo configuramos de forma sencilla. Sin embargo no le sacamos todo el provecho a Slack (somos muy fans de las listas de correo) y sólo usábamos Slack para recibir estas alertas (y para decir la verdad, solo lo utilizábamos 2 ó 3 personas en la oficina).
Cómo crear un bot en Telegram
Sin embargo la semana pasada, la plataforma de mensajería Telegram anunció su plataforma de Bots. Aunque al principio hubo un gran ruido sobre dicha aplicación parece que WhatsApp ha pasado por encima de ella... Pero algunos compañeros de trabajo ya usamos Telegram y desde el principio los creadores han publicado una API y teníamos ganas de usar dicha API. Con la publicación de la plataforma de Bots el usao del API es mucho más sencillo: con un par de comandos puedes crear el Bot de forma sencilla, así que el siguiente paso natural fue integrarlo en Cabot. Encontramos además una librería muy simple para Python llamada pyTelegramBotAPI que permite. crear bots por lo que nos pusimos manos a la obra.
Para ello preparamos el plugin de alertas Telegram para Cabot y lo hemos configurado en nuestro servidor de alertas. Hemos hecho un par de pruebas y en seguida hemos recibido los primeros mensajes. Ha sido muy sencillo y nos está siendo muy útil. Ya tenemos en mente el siguiente paso: utilizar también notificaciones de Telegram en nuestro servidor de monitorización Cacti.
Además, estos bots no sirven solo para enviar mensajes, también se pueden programar para que respondan a determinados comandos al estilo de Hubot de GitHub.