Jump to content
Калькуляторы

Исполняемый скрипт по событию в логах

Всем привет! Ребята помогите по скрипту)

Задача-чтоб по событию в логах (к примеру по последним 5-10 строчкам) он отслеживал определённое соответствие (к примеру "user ETH0000404 authentication failed") и срабатывала какая либо команда.

Share this post


Link to post
Share on other sites

Логи можно парсить скриптом. Вот примеры: 1 и 2.

Share this post


Link to post
Share on other sites

получается что то типа :if [/log find message~"logged in" || message~"login failure"] do={ /ppp aaa set accounting=yes use-radius=yes }

Share this post


Link to post
Share on other sites

Логи можно парсить скриптом. Вот примеры: 1 и 2.

Nuts не хватит у меня тямы((( если не сложно помоги)

Share this post


Link to post
Share on other sites

вот так короча получается но сейчас он все строки логов перебирает а надо только последние несколько :if ([find message~"authentication failed - radius timeout"] != "") do={/system reboot}

Share this post


Link to post
Share on other sites

Ограничьте в логе 10 строчек и все станет работать нормально.

Share this post


Link to post
Share on other sites

Ограничьте в логе 10 строчек и все станет работать нормально.

Не, не получится чёткой работы(( я всё ж борюсь с карбонбиллингом что при всякой очередной пакости не бегать.

 

Логи то всё равно нужны и тем более по ошибкам особенно авторизации абонов

Share this post


Link to post
Share on other sites

Как вариант, можно и без скрипта. Воспользоватся System -> Loging. В разделе Actions создать новую запись send -> e-mail и потом новую rules с нужным topics согласно нужному. Конечно, придётся заполнить Tools -> e-mail.

 

/system logging action

add email-start-tls=yes email-to=adress@gmail.com name=send target=email

add action=send prefix=от_куда topics=dude,critical

 

аааа, это не то, что нужно.

Edited by mafijs

Share this post


Link to post
Share on other sites

Тут смысл в том чтоб к примеру по последним 5-10 строкам отмежевался тайаут радиус сервера с присутствием в логах "authentication failed - radius timeout" и если таковой есть то срабатывал скрипт перенастройки сервера PPPoE. В /system logging action я уже заглядывал, не получится без сторонних приложений. Я хочу до ума довести схему управления микротиком+pppoe+simple queue+carbon billing5. По IP адресу через нетватч уже всё собрал в кучу и хочу чтоб ещё логи так же мониторились так как я хз почему но иногда по утру у карбона глючит радиус сервер.

 

не соображу как в условии срабатывания добавить чтоб мониторил именно последние строки(((

Share this post


Link to post
Share on other sites

Могу предложить идею. Закончить решение сейчас не могу (поздно, голова уже не варит).

Следующими командами мы получим ID последнего события в логах:

:local CurTime "$[/system clock get date] $[/system clock get time]"
:log warning "$CurTime marker"
:local LastEvent [/log find message="$CurTime marker"]

Этот ID хитрый: представляет из себя hex число с префиксом * .

Дальше дело техники: в цикле перебрать нужное количество событий, предшествующих нашему маркеру.

Также, вместо ID, можно оперировать временем.

Share this post


Link to post
Share on other sites

Не нужны вам скрипты. Делаете софт на винде, который принимает лог от сервера - в нем есть все эти таймауты. Как увидели - отправляете по ssh на микротик нужные команды - например перезагрузку, если это требуется, вот и все дела.

 

Логи то всё равно нужны и тем более по ошибкам особенно авторизации абонов

 

Обычно в логах авторизации указано, что такой то абонент - ошибка аутентификации. И так много много раз. Поэтому из логов нужно выдергивать нужное, и не писать по 100 раз одно и то же, для анализа администратором.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this