В инструкции будет рассмотрен пример по созданию Telegram бота, для отправки push сообщений при падении какого-то узла из окружения роутера MikroTik. В качестве узла как правило выступает или основной провайдер или какой-то узел из локальной сети, такой как сервер.

Telegram bot это программа, которая выполняет различные, заведомо установленные функции. В паре с роутером MikroTik под задачу Telegram бота отводится функция осведомителя состояния сети.

Как настроить Telegram бот для MikroTik

Первым шагом с создании Telegram бота для MikroTik является его регистрация. Это действие можно совершать как на мобильном телефоне, так и на ПК. Для этого нужно: открыть Telegram и найти контакт BotFather.

Настройка Telegram MikroTik, поиск бота BotFather

Это специальный Telegram бот, который и будет создателем нового бота для MikroTik. В чате с BotFather нужно ввести команду для создания нового Telegram бота:

/newbot

ввести имя Telegram бота(уникальность необязательна)

MT-Sender

определить уникальное имя, с обязательным указанием окончания типа _bot

MikrotikConfigUkr_bot

Настройка Telegram MikroTik, регистрация нового бота

На выходе необходимо зафиксировать API токен 1434763164:AAF4rlEsDiAu0l7mJKXIMfNzT-zV2Qc3CbQ, который будет использоваться в качестве регистрации отправителя.

Следующий шаг состоит из создания Telegram канала, в котором созданный Telegram бот будет передавать сообщения о статусе работы роутера MikroTik.

Настройка Telegram MikroTik, создание канала

Настройка Telegram MikroTik, определить частный канал

А далее можно добавить Telegram бота в канал

Настройка Telegram MikroTik, добавить в канал бота

Настройка Telegram MikroTik, назначить бота администратором

Чтобы Telegram бот мог передавать сообщения, его нужно запустить командой start или соответствующей кнопкой в персональном контакте с ботом.

/start

Настройка Telegram MikroTik, запуск бота

Последним параметром Telegram бота будет chat id, который можно найти после перехода по ссылке:

https://api.telegram.org/bot1434763164:AAF4rlEsDiAu0l7mJKXIMfNzT-zV2Qc3CbQ/getUpdates

где 1434763164:AAF4rlEsDiAu0l7mJKXIMfNzT-zV2Qc3CbQ API токен, выданный BotFather. В окне браузера выведется аналогичная информация:

{"ok":true,"result":[{"update_id":34080233,
"channel_post":{"message_id":2,"sender_chat":{"id":-1001186561350,"title":"MT-Status","type":"channel"},"chat":{"id":-1001186561350,"title":"MT-Status","type":"channel"},"date":1607945201,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}]}

где “chat”:{“id”:-1001186561350, а именно -1001186561350 и есть требуемый параметр.

Для передачи сообщения в Telegram канал, достаточно выполнить команду:

/tool fetch url="https://api.telegram.org/bot1434763164:AAF4rlEsDiAu0l7mJKXIMfNzT-zV2Qc3CbQ/sendMessage\?chat_id=-1001186561350&text=Mikrotik-Config.ukr testing telegram bot" dst-path=Log.txt

Настройка Telegram бота в Netwatch

Полученный код легко применяется в утилите Netwatch. Будет рассмотрен пример, когда есть правила по переключению провайдеров, которые будут дополнены сообщением в Telegram при событии типа UP и DOWN.

Настройка находится Tools→Netwatch

Настройка Telegram MikroTik, скрипт Netwatch для статуса UP

Настройка Telegram MikroTik, скрипт Netwatch для статуса DOWN

/tool netwatch
add disabled=yes down-script="/ip route disable [find comment=\"ISP-1\"]\r\
\n/ip route enable [find comment=\"ISP-2\"]\r\
\n:foreach i in=[/ip firewall connection find protocol~\"tcp\"] do={ /ip f\
irewall connection remove \$i }\r\
\n:foreach i in=[/ip firewall connection find protocol~\"udp\"] do={ /ip f\
irewall connection remove \$i }\r\
\n/tool fetch url=\"https://api.telegram.org/bot1434763164:AAF4rlEsDiAu0l7\
mJKXIMfNzT-zV2Qc3CbQ/sendMessage\\\?chat_id=-1001186561350&text=ISP-1 IS D\
OWN\" dst-path=Log.txt\r\
\nlog warning (\"ISP-1 IS DOWN\")" host=8.8.8.8 interval=30s up-script="/i\
p route disable [find comment=\"ISP-2\"]\r\
\n/ip route enable [find comment=\"ISP-1\"]\r\
\n:foreach i in=[/ip firewall connection find protocol~\"tcp\"] do={ /ip f\
irewall connection remove \$i }\r\
\n:foreach i in=[/ip firewall connection find protocol~\"udp\"] do={ /ip f\
irewall connection remove \$i }\r\
\n/tool fetch url=\"https://api.telegram.org/bot1434763164:AAF4rlEsDiAu0l7\
mJKXIMfNzT-zV2Qc3CbQ/sendMessage\\\?chat_id=-1001186561350&text=ISP-1 IS U\
P\" dst-path=Log.txt\r\
\nlog warning (\"ISP-1 IS UP\")"

Есть вопросы или предложения по настройке Telegram бота для MikroTik? Активно предлагай свой вариант настройки! Оставить комментарий