Enviar notificaciones desde Mikrotik a Telegram

2024-03-18

Después de leer y visitar bastantes sitios web donde explican diferentes formas de enviar notificaciones desde un router Mikrotik a Telegram, me he decido por la que explican en los foros de adslzone.

La razón principal es que de esta manera se trabaja de una forma modular, lo que ayuda a ahorrar código y hacer mas legible los scripts.

La idea es crear un módulo donde configuramos el TOKEN del bot de Telegram y el ID del usuario de Telegram y luego creamos un script que manda el mensaje a ese módulo.

Tampoco voy a explicar la forma de crear un bot en Telegram ni como obtener su TOKEN ni ID de tu usuario o grupo de Telegram, puedes leer este articulo que escribí hace tiempo donde lo explico o sino hay multitud de sitios web donde seguro que lo explican mucho mejor que yo.

Empezamos creando el modulo para Telegram, desde el menu System -> Scrips pulsamos en el icono + de color azul

img

En el campo Name ponemos MyTGBotSendMessage, es importante que se llame así porque en futuros scripts haremos llamadas a este modulo por su nombre.

Cambia la parte del código con el TOKEN de tu bot e ID de tu chat de Telegram

    :local BotToken "TOKEN_BOT";
    :local ChatID "CHAT_ID";
    :local parseMode "HTML";
    :local SendText $MessageText;
    
    /tool fetch url="https://api.telegram.org/bot$BotToken/sendMessage\?chat_id=$ChatID&parse_mode=$parseMode&text=$SendText" keep-result=no;
    
    :log info "==> Send Telegram Message";

Test

Para comprobar si funciona, creamos otro script, al que llamamos test con el siguiente código

img

    :local MessageText "Telegram Test OK";
    :local SendTelegramMessage [:parse [/system script get MyTGBotSendMessage source]];
    $SendTelegramMessage MessageText=$MessageText;

Y lo ejecutamos

img

Si recibes el mensaje es que todo está correcta y si no lo recibes vuelve a comprobar de nuevo las credenciales de Telegram, y que has copiado correctamente el código del script.

img

Con este método ya tenemos una base para aplicar alarmas, notificaciones, etc. de nuestro router Mikrotik hacia Telegram

Espero que te haya gustado, pasa un gran día 🐧

Referencia


Ingrese la dirección de su instancia