Настройка уведомлений Telegram MikroTik для мониторинга с примером создания бота и группы, а так же отправкой сообщения по событию DHCP Client.
Профессиональная настройка MikroTik
Без предоплаты
Telegram: @Engineer_MikroTik
Создание бота
Теперь нужно узнать ID чата, куда боту нужно посылать сообщения.
Находим бота @username_to_id_bot и добавляем его в чат
Проверка отправки
Отправка происходит 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=[Сообщение]"
Можно открыть через браузер
И через CLI 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;
Меняем тест сообщения или 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 или его обновлении