Bot Telegram para recibir notificaciones de Check_mk
10 abril, 2019
General
Índice
Bot Telegram para recibir notificaciones de Check_mk
En esta entrada voy a comentar el proceso de configuración de un bot de telegram que nos notifique de las alertas de nuestro Chek_mk.
Creación del bot-Telegram
Buscamos @BotFather el padre de todos los bots.
Introducimos /newbot o hacemos click en la opción /newbot
Nos pedirá el nombre que queremos ponerle a nuestro bot
Nos informará de cual es el token API de nuestro bot
Si le decimos /mybots
Podremos seleccionar uno de nuestros bots creados y modificar sus atributos, como por ejemplo, su imagen de avatar
Y le enviamos la imagen que queramos como avatar:
Asegurarse de enviarlo como foto y no como archivo
ID Chat
Para conocer nuestro ID Chat, tenemos varios métodos. Uno muy sencillo sería hablar con cualquiera de los siguientes bots:
Diciéndole /start o /getid nos informará de nuestro ID de Chat.
Mediante este ID luego podremos filtrar que sólo nosotros podamos usar nuestro bot.
Script de notificación telegram – Check_mk
Descargamos el script, es una versión modificada del script de «mail»
Lo debemos de colocar en ~/local/share/check_mk/notifications
y darle permisos de ejecución
chmod +x telegram
En nuestro caso, este directorio es:
Debemos editar las primeras líneas con el TOKEN API y nuestro IDCHAT
### EDITAR AQUI ###
telegram_bot_token = ‘EDITAR’
idchat =‘EDITAR’
Reiniciamos nuestro sitio check_mk
omd su [sitio check_mk]
omd restart
Configurar alerta
Ahora podemos ir a «Alertas»
Y si hicimos todo bien, nos aparecerá un nuevo método «telegram»
amigo no funciona… mira el error que sale
2019-05-30 22:03:35 executing /omd/sites/gestion/local/share/check_mk/notifications/telegram
2019-05-30 22:03:36 Output: Traceback (most recent call last):
2019-05-30 22:03:36 Output: File "/omd/sites/gestion/local/share/check_mk/notifications/telegram", line 112, in
2019-05-30 22:03:36 Output: main()
2019-05-30 22:03:36 Output: File "/omd/sites/gestion/local/share/check_mk/notifications/telegram", line 110, in main
2019-05-30 22:03:36 Output: send_telegram_message(telegram_bot_token, telegram_chatid, text)
2019-05-30 22:03:36 Output: File "/omd/sites/gestion/local/share/check_mk/notifications/telegram", line 101, in send_telegram_message
2019-05-30 22:03:36 Output: sys.stdout.write('Cannot send Telegram message: HTTP-Error %s %sn' % (e.code, e))
2019-05-30 22:03:36 Output: AttributeError: 'URLError' object has no attribute 'code'
2019-05-30 22:03:36 Plugin exited with code 1
Has editado correctamente la sección
### EDITAR AQUI ###
telegram_bot_token = 'AajGKQj……………………'
idchat ='44………………………'
??
Amigo actualmente se hace la consulta por el service WEB de telegram y no responde:
https://api.telegram.org/botTOKEN/sendMessage.
El resultado es el siguiente:
{"ok":false,"error_code":400,"description":"Bad Request: message text is empty"}
pero si hago la siguiente consulta, mire la respuesta del service web:
{"ok":true,"result":[{"update_id":XXX,
"message":{"message_id":13,"from":{"id":XXX,"is_bot":false,"first_name":"Rafael","last_name":"Trujillo","language_code":"en"},"chat":{"id":XXX,"first_name":"Rafael","last_name":"Trujillo","type":"private"},"date":1559786070,"text":"Ole"}}]}
claro pero https://api.telegram.org/botTOKEN/sendMessage.
hay que sustituir el botTOKEN
Si, ya se puso el token y no funcionó.
Esto al menos si te funciona no ? https://api.telegram.org/botSEGUIDODETUAPITOKEN/getUpdates
El bot responde bien, pero check_mk no envia nada
Si el plugin pertenece al usuario de check_mk.. tiene permisos de ejecución.. y está bien configurado con el
telegram_bot_token = 'EDITAR'
idchat ='EDITAR'
y sigue sin ir, entonces es raro!! No sabría por qué puede ser!
Hola, con que version de check-mk fue generado el script, lo probe y me da el siguiente error (coloque el token del bot y el id chat)
2019-07-03 15:18:17 Notification channel with plugin telegram
2019-07-03 15:18:17 executing /omd/sites/sitetest/share/check_mk/notifications/telegram
2019-07-03 15:18:19 Output: Cannot send Telegram message: HTTP-Error 400 HTTP Error 400: Bad Request
Hola,
La notificación me funciono perfecto en la versión 1.2.8 de check_mk, es buena opción depurar el problema desde una consola de linux ejecutando esto para validar que el TOKENDELBOT que usas y el ID del chat son correctos.
curl -s -X POST https://api.telegram.org/botTOKENDETUBOT/sendMessage -d chat_id=IDDELCHATQUERECIBIRAELMENSAJE -d text="Mensaje a enviar"
Hola, la notificación a Telegram me funciona desde el prompt vía curl usando la sintaxis que publica Ms en este blog, pero me da error el script:
Qué puede ser?
Traceback (most recent call last):
File «./telegram», line 112, in
main()
File «./telegram», line 109, in main
text = construct_message_text(context)
File «./telegram», line 58, in construct_message_text
notification_type = context[«NOTIFICATIONTYPE»]
KeyError: ‘NOTIFICATIONTYPE’
Funciona perfecto en check_mk 1.6.0p11, segui los pasos indicados y llegaron las alertas sin problemas.
Me alegro de que te fuera útil!
Me ha funcionado perfectamente siguiendo la guía (como dato, cuando creas la notificación en check_mk debes marcar la casilla de notificar a todos los usuarios, no solo a todos los contactos) Un saludo
¡Que bien. Me alegro de que te fuera útil!
Hola Evaristo, muchas gracias, es un excelente aporte y me funcionó. Solo tengo un problema porque me llegan 2 notificaciones del mismo evento es decir, se repiten.
2020-11-04 11:31:36 Global rule ‘Notify all contacts of a host/service via Telegram’…
2020-11-04 11:31:36 -> matches!
2020-11-04 11:31:36 – adding notification of user1, user2, user3via Telegram
2020-11-04 11:31:36 Executing 1 notifications:
2020-11-04 11:31:36 * notifying user1, user2, user3 via Telegram, parameters: (no parameters), bulk: no
2020-11-04 11:31:36 executing /omd/sites/seguridad/local/share/check_mk/notifications/Telegram
2020-11-04 11:31:37 executing /omd/sites/seguridad/local/share/check_mk/notifications/Telegram
2020-11-04 11:31:38 executing /omd/sites/seguridad/local/share/check_mk/notifications/Telegram
muchas gracias, no me funciono al principio porque el usuario que puse en el notificación no podía enviar notificación o no estaba habilitado
Hola Evaristo,
gracias por tan buen contenido. Dejo por aquí un artículo en el que también hablamos de la creación de un bot para Telegram usando Python. Por si alguno siente curiosidad: https://saasradar.net/blog/creacion-bot-telegram/
Gracias!
Gracias! Me alegro de que te gustase!
Muy buen artículo por cierto! 🙂
Hola amigos, con la versión check-mk-raw-2.0.0p1_0 al parecer no funciona… alguna pista?
Hola @Evaristo R, un super aporte lo unico porque llega dos veces el mensaje¿?
Gracias