Как стать автором
Обновить

MikroTik Скрипт: Уведомление о успешном входе на устройство или простой парсер журнала MikroTik

Время на прочтение6 мин
Количество просмотров35K
Всего голосов 6: ↑6 и ↓0+6
Комментарии25

Комментарии 25

НЛО прилетело и опубликовало эту надпись здесь
Я не житель Лондона, не знал такой подробности. :)
система хранит в журнале события сегодняшнего дня только с параметром времени, а чтобы не путаться, когда сменяется день, перезаписывает время событий добавляя дату, во все события "вчерашнего" дня. Для пользователя, в журнале событий все события отображаются дата/время, но сама система, событиям текущего дня присваивает только время

Костыли и велосипеды.jpg Инженерам Mikroitk должно быть стыдно за такое.


Скрипт + README зачем он сделан было бы хорошо выложить на гитхаб, хабр всё-таки для публикации кода не лучший вариант, здесь его меньше людей найдёт.

На GitHub от тоже есть. Но руки не доходят выложить и оформить, всё что есть.

Хотя бы ридмишечку с описанием, какой скрипт что делает и зачем. В таком виде вряд ли кто-то станет это использовать. Полезная же штука.

Ридмишечка по этому скрипту в этой статье, по другим скриптам в других статьях. Меня гугл еще не выводил через поиск именно на репозитории GitHub.
Если к каждому скрипту добавить ссылку на статью — станет проще? (Проблемы со свободным временем)

Что-нибудь такое:


README.md:



Будет понятно что и зачем, люди начнут использовать, потом ещё и PR предлагать станут.

Большое спасибо! Так понятней и времени не займет много, сделаю. Не могу + поставить вашему комментарию.
Посмотрел ваш вариант, мне он проще никак не показался, но хорошо что существуют альтернативы. :)

Самое прикольное, что половина скриптов этих, и даже правил в Netwatch магическим образом перестают работать при обычном обновлении системы. За это некротик просто ненавижу, но в защиту микротиков конечно можно сказать то, что стоимость условного маршрутизатора в бранч с 4g модемом, не идёт ни в какое сравнение с таким же вариантом на циско, особенно в свете того, что эти товарищи убирают старые добрые девайсы 8хх из продажи.

Множество скриптов что я видел, до того как сам взялся за это дело, тянутся еще с «лохматых годов». Хоть и не часто, но обновления устройства вносят какие-то изменения (например внедрение и отказ от LUA).
Поэтому ваш вариант может случаться, но для старых скриптов или для скриптов с «костылями для костылей», я стараюсь так не делать. Я тоже мог нагородить костылей со временем, а после исправления Микротик указанной логики с журналом устройства, мой скрипт так же превратился бы в «тыкву».
Разделяю ваше мнение — цена Микротика его огромное достоинство.

Сергей-программист :), хочу добавить пару мыслей к пониманию "интересной логики" и почему "инженеры MikroTik большие оригиналы".


По "характеру мышления" или "интуитивному выбору пути решения проблемы" основные IT специализации можно разделить на 2 группы.


1) конструктивные чуваки — разработчики, аналитики, архитекторы, бизнес — эти строят. Им надо. Даже кто в этой группе "строит" херово имеют четкую направленность сознания — создавать новое.


2) стабилизирующие (и слегка деструктивные) — тестировщики, служба поддержки, и СИСАДМИНЫ — эти атланты латают, лечат, удерживают какими-то %$^#$#@ посроенное "здание". Шатают с целью укрепить тот хлипкий из говна и палок на болоте, что недорого и быстро слепили коллеги из 1-й группы
(их так заставили! но это не точно..)


Если кому интересно — завтра допишу.

/system logging
add action=email disabled=no prefix="" topics=account
Пришлет моментально! На email оповещение о входе.

Абсолютно верно, с 20+ MikroTik он пришлет абсолютно одинаковое уведомление (без какого-то идентификатора устройства), для любителей головоломок или обладателей 20+ email для этой цели — это подойдет.
Если ваш почтовый сервер(куда вы планируете отправлять уведомления) поддерживает Subaddressing, то достаточно одного почтового ящика. Mikrotik таких адресатов переваривает(специально проверил отправку с микротика на мейлру с гмейла).
Дельно! В случае необходимости только почтовых уведомлений — это будет отличным вариантом. Хотя и не для ленивых, при смене Identity устройства нужно не забыть переписать параметры почты, хотя как плюс, обозвать в почте роутер можно не так как его Identity. Хотя если бы инженеры MikroTik добавили в Logging вместо Action (ну глупо звучит «если бы инженеры Микротик добавили вместо экшена ...» :) ) возможность вставки скрипта, было бы совсем хорошо.
На MikroTik RB952Ui-5ac2nD hAP AC lite с RouterOS v6.47.7 скрипт не заработал, не выполняется условие:
:if ($EndArrayID != $ParseLogAccountEndArrayID and [:tobool $ParseLogAccountEndArrayID] ) do={
Благодарю за найденную ошибку.
Перенесите строку :set ParseLogAccountEndArrayID $EndArrayID; из середины скрипта, в самый конец.
Код в статье поправлен. Напишите о результате пожалуйста.
Не помогло, условие не выполняется.
Написал в ЛС, давайте разберемся. В том виде в каком предоставлен код, с указанием необходимых прав условие не может не выполняться.
Разобрались, помогло удаление ParseLogAccountEndArrayID из переменных окружения, было значение *BFD. После запуска скрипта значение стало *1078 и после повторного логина уведомление пришло.
Рад, что получилось.
*BFD и *1078 это найденные последние ID журнала по заданному условию, которые скрипт пишет в глобальную переменную ParseLogAccountEndArrayID.
Значение переменной можно удалить в System — Script — Environment.
UPD 11.12.2020: Выставляйте права на запуск скрипта в Scheduler и на сам скрипт, как указано в статье: read, write, test, policy. Излишние права (выставляются по умолчанию новому скрипту) приводят к появлению ошибки "could not run script ParseLogAccountEvents: not enough permissions".
Привет инженерам MikroTik еще раз!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации