Отправка уведомления на почту, если кто-то заходит на Микротик

Автоматизация при помощи встроенного скриптового языка и RouterOS API
Аватара пользователя
Sir_Prikol
Сообщения: 299
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Отправка уведомления на почту, если кто-то заходит на Микротик

Сообщение Sir_Prikol » 24 дек 2018, 21:31

Код: Выделить всё

:local token "Your_Telegram_Token";
:local chatid "Your_Yelegram_Chat_ID";
:local lstime ([/system scheduler get value-name=next-run [find name="correct-login"]] - [/system scheduler get value-name=interval [find name="correct-login"]] * 2);
:foreach i in=[/log find message~"logged in" && time>=$lstime] do={/tool fetch address=api.telegram.org url="https://api.telegram.org/bot$(token)/sendMessage\?chat_id=$(chatid)&text=$[/system identity get name]%0A$[/log get $i message]" keep-result=no};
У меня висит в шедуллере такой, вызывается раз в минуту, осечек не было

Я ещё разделил, один оповещает о входе, второй о выходе, третий о неудачной попытке входа. Оповещает какой юзер и с какого IP ломился
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Аватара пользователя
sasha300
Сообщения: 96
Зарегистрирован: 03 мар 2016, 16:00
Откуда: Санкт-Петербург

Re: Отправка уведомления на почту, если кто-то заходит на Микротик

Сообщение sasha300 » 25 дек 2018, 00:26

Ну и круто! Всего 4 строчки кода, а задачу решают на ура

Аватара пользователя
Sir_Prikol
Сообщения: 299
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Отправка уведомления на почту, если кто-то заходит на Микротик

Сообщение Sir_Prikol » 25 дек 2018, 00:51

Ну переделать его на отправку на почту, думаю, без меня справитесь, там несколько строчек добавится.
Плюс у меня все оповещения в slack запаралеллены. Ибо телега не всегда сама по себе работает, а слак без осечек
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

chas99
Сообщения: 99
Зарегистрирован: 10 фев 2017, 08:52

Re: Отправка уведомления на почту, если кто-то заходит на Микротик

Сообщение chas99 » 25 дек 2018, 10:18

у меня api.telegram.org не отвечает :(
попробовал через Opera с включенным VPN - работает !

Аватара пользователя
Sir_Prikol
Сообщения: 299
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Отправка уведомления на почту, если кто-то заходит на Микротик

Сообщение Sir_Prikol » 25 дек 2018, 11:55

Ну что я могу сказать, претензии к РКН и своему провайдеру :) У меня толпа подсетей в забугорье уходит, именно по этой причине :)
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

chas99
Сообщения: 99
Зарегистрирован: 10 фев 2017, 08:52

Re: Отправка уведомления на почту, если кто-то заходит на Микротик

Сообщение chas99 » 26 дек 2018, 16:21

Sir_Prikol писал(а):
25 дек 2018, 00:51
Ну переделать его на отправку на почту, думаю, без меня справитесь, там несколько строчек добавится.
Покажите пожалуйста, как отправить на почту...


R_Oleg
Сообщения: 3
Зарегистрирован: 24 апр 2019, 01:51

Re: Отправка уведомления на почту, если кто-то заходит на Микротик

Сообщение R_Oleg » 24 апр 2019, 02:00

Sir_Prikol писал(а):
24 дек 2018, 21:31

Код: Выделить всё

:local token "Your_Telegram_Token";
:local chatid "Your_Yelegram_Chat_ID";
:local lstime ([/system scheduler get value-name=next-run [find name="correct-login"]] - [/system scheduler get value-name=interval [find name="correct-login"]] * 2);
:foreach i in=[/log find message~"logged in" && time>=$lstime] do={/tool fetch address=api.telegram.org url="https://api.telegram.org/bot$(token)/sendMessage\?chat_id=$(chatid)&text=$[/system identity get name]%0A$[/log get $i message]" keep-result=no};
У меня висит в шедуллере такой, вызывается раз в минуту, осечек не было

Я ещё разделил, один оповещает о входе, второй о выходе, третий о неудачной попытке входа. Оповещает какой юзер и с какого IP ломился
Доброго времени суток!
Не хочет работать
Пробовал из терминала, ошибка: Script Error: cannot substract string from ip address
Может дело в версии ROs? у меня 6.43.8? железка rb951

Аватара пользователя
Sir_Prikol
Сообщения: 299
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Отправка уведомления на почту, если кто-то заходит на Микротик

Сообщение Sir_Prikol » 24 апр 2019, 10:13

Нет, если вы в РФ - то предварительно надо настроить обход блокировок. А это уже другая история. Воспользуйтесь отправкой в slack, он доступен в РФ
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

R_Oleg
Сообщения: 3
Зарегистрирован: 24 апр 2019, 01:51

Re: Отправка уведомления на почту, если кто-то заходит на Микротик

Сообщение R_Oleg » 24 апр 2019, 12:15

Sir_Prikol писал(а):
24 апр 2019, 10:13
Нет, если вы в РФ - то предварительно надо настроить обход блокировок. А это уже другая история. Воспользуйтесь отправкой в slack, он доступен в РФ
Есть несколько правил в netwatch, с ними телеграмм работает, исправно все отправляет, но чат-ид и токен прописаны без локальных переменных, непосредственно в строку:

Код: Выделить всё

 tool fetch url="https://api.telegram.org/bot*******************-**********************/sendMessage\?chat_id=**************&text=AP-NAS_Link_Up" keep-result=no
как будто не присваивается переменная
:local token "************************-**************************";
:local chatid "*******************";

и еще, как в примере ниже, не работает..

Код: Выделить всё

:foreach i in=[/log find message~"logged in" && time>=$lstime] do={/tool fetch url="https://api.telegram.org/bot*******************-**********************/sendMessage\?chat_id=**************&text=$[/system identity get name]%0A$[/log get $i message]" keep-result=no};

и так не работает:

Код: Выделить всё

tool fetch url="https://api.telegram.org/bot*******************-**********************/sendMessage\?chat_id=**************&text=$[/system identity get name]%0A$[/log get $i message]" keep-result=no

а так работает..

Код: Выделить всё

tool fetch url="https://api.telegram.org/bot*******************-**********************/sendMessage\?chat_id=**************&text=$[/system identity get name]" keep-result=no
Пробовал и из терминала, и из скрипта
Возможно, я где то чего то не догоняю

Вот еще ошибка из терминала:

Код: Выделить всё

:local lstime ([/system scheduler get value-name=next-run [find name="correct-log
in"]] - [/system scheduler get value-name=interval [find name="correct-login"]] * 2);
Script Error: cannot arithmetically negate ip address

Ответить