Telegram MikroTik

Настройка уведомлений Telegram MikroTik для мониторинга с примером создания бота и группы, а так же отправкой сообщения по событию DHCP Client.

Профессиональная настройка MikroTik
Без предоплаты

Telegram: @Engineer_MikroTik

Создание бота

Telegram MikroTik
Находим @BotFather
Telegram MikroTik
Отправляем /newbot
Придумываем имя и логин
Получаем token, он же [ID Бота]
Telegram MikroTik
Находим созданного бота и запускаем его
Telegram MikroTik
Создаем группу
Telegram MikroTik
И добавляем туда созданного бота

Теперь нужно узнать ID чата, куда боту нужно посылать сообщения.

Находим бота @username_to_id_bot и добавляем его в чат

Telegram MikroTik
Получили [ID Чата]

Проверка отправки

Отправка происходит get запросом через /tool fetch url=

Где в url передаем все, что хотим отправить. Например:

tool/fetch url url="https://api.telegram.org/bot7079885898:AAGhg1EDrI50anh2IC6AiN_QVTil_biewFM/sendMessage?chat_id=-4198924813&text=TEST"

Разберем команду:

tool/fetch url url="https://api.telegram.org/bot[ID Бота]/sendMessage?chat_id=[ID Чата]&text=[Сообщение]"

Можно открыть через браузер

Telegram MikroTik

И через CLI MikroTik

Telegram MikroTik
Telegram MikroTik
В обоих случая мы получим сообщение в группу

Варианты использования

Отправка через скрипт

Указываем в переменные все необходимые данные и запускаем скрипт

:local DeviceName [/system identity get name];
:local BotToken "7079885898:AAGhg1EDrI50anh2IC6AiN_QVTil_biewFM";
:local ChatID "-4198924813";
:local ParseMode "html";
:local DisableWebPagePreview True;
:local TelegramMessageText "Scrypt Message"
:local SendText "<b>$DeviceName:</b> $TelegramMessageText";
:local tgUrl "https://api.telegram.org/bot$BotToken/sendMessage?chat_id=$ChatID&text=$SendText&parse_mode=$ParseMode&disable_web_page_preview=$DisableWebPagePreview";
/tool/fetch http-method=get url=$tgUrl keep-result=no;
Telegram MikroTik
И получаем сообщения

Меняем тест сообщения или ID чата в новом скрипте под новое уведомление и прикручиваем к событию.

Например вытащим IP полученный по DHCP и отправим в группу:

:local DeviceName [/system identity get name];
:local BotToken "7079885898:AAGhg1EDrI50anh2IC6AiN_QVTil_biewFM";
:local ChatID "-4198924813";
:local ParseMode "html";
:local DisableWebPagePreview True;
:local WANDHCP Vlan11-ISP1;
:local TelegramMessageText [/ip address get value-name=address [find interface=$WANDHCP]];
:local SendText "<b>$DeviceName: </b> $TelegramMessageText";
:local tgUrl "https://api.telegram.org/bot$BotToken/sendMessage?chat_id=$ChatID&text=$SendText&parse_mode=$ParseMode&disable_web_page_preview=$DisableWebPagePreview";
/tool/fetch http-method=get url=$tgUrl keep-result=no;

Вешаем скрипт на событие и получаем уведомление при получении IP или его обновлении

Top