Inicio / Linux / Notificaciones de Nagios vía Telegram

Notificaciones de Nagios vía Telegram

En este artículo veremos como configurar nuestro Nagios para que nos informe de las distintas alertas mediante Telegram en un Grupo de chat; ya que recibir las alertas o notificaciones de un sistema de monitorización por el mayor número de vías, creo que es algo que nos compensa a todos y si nos podemos amoldar a las opciones que vamos teniendo hoy en día mejor…

Recibir las alertas por E-mail de Nagios, está pero que muy bien, al igual que cualquier sistema de “alertas”/notificaciones, pero seamos sinceros, al final generas una regla en tu buzón para que terminen en un directorio sobre el que pulsarás todos los días para vaciar sin mirar.

Por ese motivo cuando descubría la posibilidad de integrar las notificaciones de Nagios con Telegram, me pareció una muy buena idea, ya que al final el propio Departamento muchas veces nos comunicamos por Telegram y esas notificaciones ya tenerlas en el móvil si o sí las terminas viendo. ¿Las puedes borrar? Sí, pero Nagios es lo suficientemente pesado para estar haciendo vibrar o sonar tu móvil.

Requerimientos:

  • Tener un servidos de Nagios instalado, si no lo tienes ya, pásate por mi anterior artículo o por mi canal de Youtube.
  • Tener un Bot en Telegram (No te preocupes, te enseño a crearlo 😛 )

Crear un bot en Telegram paso a paso.

  1. Nos descargamos Telegram bien sea en nuestro teléfono móvil o en nuestro equipo.
  2. Buscamos al usuario BotFather y abrimos un chat con el.

Si escribimos /start, nos mostrará un listado de todos los comandos que podemos ejecutar:

Nosotros vamos a ejecutar: /newbot

Nos preguntará que nombre le queremos dar al bot, hay que recordar que al final debe contener el texto “bot”, por tanto un nombre para el bot podría ser MiNagiosbot

Una vez nos valide que el nombre es correcto (para escribir el nombre no hay que anteponer una barra ni nada),  nos mostrará un mensaje informando que ya está el Bot creado y nos dará la URL https://t.me/MiNagiosbot y al final nos facilitará un Token que es del estilo del siguiente: 331004445:AAGFwW59yvvvv-a09VjzLLp3uu-11yVC4SS

  • El Token es: 331004445:AAGFwW59yvvvv-a09VjzLLp3uu-11yVC4SS
  • El UserID es sólo la parte numérica:331004445

Crear un grupo en Telegram

Este paso ahora mismo no es importante, pero luego necesitaremos el valor del GroupID que se le asocian a los “grupos de chat”, por lo que mejor crearlo ya.

Configurar Nagios

Lo primero que necesitamos es crear un script en el directorio /usr/local/bin para enviar las notificaciones al bot y que guardaremos como telegram_nagios.py (Si estas cosas no te gusta mucho hacerlas, después de este recuadro de código te dejo la forma de descargarlo directamente)

Descargar directamente el Script ejecutando desde la consola de nuestro Nagios lo siguiente:

Una vez nos lo ha descargado aplicaremos permisos:

Editar los ficheros de Nagios

Fichero commands.cfg

Este será el primer fichero que editaremos que si has seguido mis artículos o vídeos se encuentra en /usr/local/nagios/etc/objects/ , así que ejecutaremos:

En este fichero agregaremos lo siguiente:

Ojo!!!!

El valor que sigue a –token, debéis poner el que os ha facilitado BotFather para vuestro bot, el que he puesto yo es de ejemplo

 

Lo voy a repetir por si habéis copiado y pegado directamente.

En las dos líneas de command_line hay un parámetro que es –token y después agrego el token de ejemplo que hemos visto al inicio del artículo; vosotros tendréis que poner el que os ha facilitado BotFather al crear vuestro bot.

Fichero templates.cfg

El fichero se encuentra en la misma ruta que commands.cfg /usr/local/nagios/etc/objects, así que ejecutaremos lo siguiente para editarlo:

En mi caso en la definición del contacto “generic-contact” agregaré tanto en service_notification_commands como en host_notification_commands, notify-host-by-telegram, quedando así:

Fichero contacts.cfg

El fichero contacts, es seguro que ya lo tengáis muy editado, por lo que os voy a plasmar directamente el mío al completo para que veáis donde se deben hacer las referencias.

  • Definir un contact, agregaremos lo siguiente al fichero:
El valor de “pager” es en negativo ya que corresponde al GroupID del Grupo que hemos creado en Telegram para que esté tanto nuestro Bot como los miembros del Departamento de Sistemas.

Un poco más arriba os recomendé crear ya un grupo de Telegram, bien pues si ya habéis agregado a los miembros de vuestro departamento es el momento de agregar al bot, que lo haremos de la misma forma que agregamos a un contacto al grupo.

El valor del “pager”, lo obtendremos accediendo a la siguiente URL:

Tendremos que sustituir <TOKEN>, por el valor que nos facilitó BotFather, que en este ejemplo sería:

Al abrir la URL se nos mostrará lo siguiente (en este ejemplo al grupo lo he llamado AlertasNagios):

El valor del “pager” para nagios es el que vemos como “id”

  • Agregamos a los miembros del “contactgroup” que queremos el nuevo “contact_name” que hemos creado:
Ahora guardamos nuestro fichero y reiniciamos nagios.
¿Ya está? NO! falta un poquito 🙂

Instalar twx.botapi

Para que nuestro script telegram_nagios.py funcione correctamente, necesitaremos instalar la librería de python twx.botapi así que ejecutaremos los siguientes comandos:

  • Instalar python-pip
  • Instalar twx.botapi
Si queremos hacer una prueba desde consola, podemos ejecutar lo siguiente:
En esta línea que hemos ejecutado tendremos que sustituir dos valores:

  • –token: Por el token que nos facilitó BotFather
  • –contact: Por el GroupID del grupo de chat en el que hemos agregado al Bot.

Espero que os sea de ayuda y que lo compartáis en vuestras redes sociales 🙂

Sobre Bosco López

/dev/null

Te puede interesar también

Optimizando la carga de nuestra web Google Analytics en local

Antes de que continúes leyendo te quiero recordar que Google no recomienda esta práctica, informando …

2 Comentarios

  1. Impresionate, formato de tu blog! ¿Cuanto tiempo llevas bloggeando? haces que leer en tu blog sea entretenido. El diseño total de tu web es currado, al igual que el material contenido!
    Saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *