Evaristo R

Técnico Administrador de Sistemas

Técnico Post-productor (VFX, 3D, Vídeo digital)

Piloto de RPAS certificado por AESA

Profesor e-Learning

Evaristo R

Técnico Administrador de Sistemas

Técnico Post-productor (VFX, 3D, Vídeo digital)

Piloto de RPAS certificado por AESA

Profesor e-Learning

Blog Post

Bot Telegram para recibir notificaciones de Check_mk

10 abril, 2019 General
Bot  Telegram para recibir notificaciones de Check_mk

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»

Las alertas comenzarán a llegarnos por Telegram

En definitiva, una opción muy interesante como complemento a otros métodos de notificación en los que no dependamos de un servicio externo, como es Telegram.
Taggs:
11 Comments
  • Unknown 11:25 pm 30 mayo, 2019 Responder

    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

  • evaristo 4:39 am 31 mayo, 2019 Responder

    Has editado correctamente la sección
    ### EDITAR AQUI ###
    telegram_bot_token = 'AajGKQj……………………'
    idchat ='44………………………'

    ??

    • Rafael Trujillo 10:22 pm 6 junio, 2019 Responder

      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"}}]}

    • evaristo 4:31 am 7 junio, 2019 Responder

      claro pero https://api.telegram.org/botTOKEN/sendMessage.
      hay que sustituir el botTOKEN

  • Rafael Trujillo 10:47 pm 7 junio, 2019 Responder

    Si, ya se puso el token y no funcionó.

  • Unknown 5:43 pm 10 junio, 2019 Responder

    El bot responde bien, pero check_mk no envia nada

    • evaristo 7:00 pm 10 junio, 2019 Responder

      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!

  • Unknown 7:29 pm 3 julio, 2019 Responder

    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

  • Ms 2:35 pm 4 julio, 2019 Responder

    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"

  • Mike 3:34 pm 23 agosto, 2019 Responder

    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’

Write a comment

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. Si está interesado en leer el aviso de privacidad pinche aquí.

ACEPTAR
Cookies y privacidad