MikroTik — мониторинг (оповещение в телеграмм)

Автоматизация при помощи встроенного скриптового языка и RouterOS API
anyfix
Сообщения: 4
Зарегистрирован: 06 янв 2022, 01:43

MikroTik — мониторинг (оповещение в телеграмм)

Сообщение anyfix »

https://www.youtube.com/watch?v=1mvVPk8XjBM
Есть у меня один прекрасный сервер, который имеет характерную особенность – зависать. В данной статье мы не будем рассматривать очевидные идеи по типу того, что не плохо бы найти причину этого зависания …

Я подумал, что было бы очень хорошо иметь оперативное уведомление о том что сервер более не доступен. Поехали!

Создаем в телеграмме нового бота. Отправляем контакту BotFather команду /newbot (кстати там можно и другие настройки делать, менять имя, устанавливать аватару и т.д.)

Задаем отображаемое имя бота в произвольном формате. Затем, задаем юзернейм для бота. Он должен быть без пробелов и содержать _bot в конце.

После этого BotFather отрапортует об успешном создании бота, и выдаст уникальный идентификатор (токен) для работы с ботом по API.

Выглядит он примерно вот так

111111111:AAEqbGdOUtAA7GK1TJSAEdy3vIUFAuE68vk
Открываем браузер, и заходим по адресу
https://api.telegram.org/botТОКЕН/getMe

В ответ получаем информацию в JSON формате
{“ok”:true,”result”:{“id”:111111111,”is_bot”:true,”first_name”:”vium”,”username”:”vium_bot”}}
Отлично! Двигаемся далее

Пишем нашему созданному боту команду /start. После любое сообщение, например test.

Открываем в браузере адрес
https://api.telegram.org/botТОКЕН/getUpdates

{“ok”:true,”result”:[{“update_id”:31449293,
“message”:{“message_id”:2,”from”:{“id”:311840248,”is_bot”:false,”first_name”:”Aleksey”,”last_name”:”Bear”,”username”:”bearscience”,”language_code”:”ru”},”chat”:{“id”:311840248,”first_name”:”Aleksey”,”last_name”:”Bear”,”username”:”bear”,”type”:”private”},”date”:1559536164,”text”:”\u0432\u0430″}}]}

Из этого ответа берем ID, я выделил их …
Теперь если вы в браузере откроете строку
https://api.telegram.org/botТОКЕН/sendM ... xt=MESSAGE то сообщение будет доставлено в ваш бот. (Я надеюсь понятно что нужно вставить свой токен, ID и текст сообщения).

Касаемо уведомления с mikrotik, то тут все просто:
Заходим в Tools>Netwatch. Добавляем там цель для пинга.
Там же можем видеть две вкладки Up & Down. Это скрипты, которые исполняются при событии когда хост поднялся или упал.
Вставляем уже полученную строку для отправки сообщения туда в виде
tool fetch url=” https://api.telegram.org/botТОКЕН/sendM ... ext=Server alive!” dst-path=log.txt

Вот собственно и всё. Вместо того чтобы отремонтировать сервер, я просто сделал костыль и подставил под сервер. Следующим этапом будет автоматическая перезагрузка при зависании :-DDD
p.s. данная информация документирована на сайте телеграмм, и я потратил всего 10-15 минут для реализации данной задачи. Будьте здоровы!