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

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

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

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

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

Как вариант, можно и без скрипта. Воспользоватся 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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.