Отправка e-mail/sms про появлении в сети определенного хоста

Обсуждение ПО и его настройки
Ответить
Аватара пользователя
podarok66
Модератор
Сообщения: 4351
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Э нет, это работает, у меня стоит проверка уже несколько часов и все срабатывает. Так что и у Вас должно срабатывать однозначно.
Итак еще раз.
1. Изначально задаем глобальную переменную, лучше всего просто создать шедулер с запуском при старте системы и телом

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

:global StatIP "OFFline"

2. Создаем скрипт с телом, которое я привел в предыдущем сообщении и называем его например follow, адрес контролируемой машинки подставляем свой.
3. Создаем шедулер с тем же именем ( чтобы легче ориентироваться) и стартом через нужный интервал. У меня стоит одна минута. По моим наблюдениям, скрипт работает порядка 7-8 секунд при условии, что он отправляет сообщение только в логи. Если отправлять письмо на почту, время работы увеличится значительно, секунд 20-30 запросто, а то и больше. Особенно, если канал тощий. Учтите, если интервал будет маленький, скрипт будет сам себе мешать. Тело шедулера выглядит так

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

/system script run follow

4. Перезагружаем машинку для правильного старта. (Я лез в переменные и корректировал, но Вы смоделируйте реальные условия). Все. Смотрим за работой скрипта...


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
podarok66
Модератор
Сообщения: 4351
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Ах-ха-ха-ха-ха. Это просто смешно. Оставил запись со скриптом в ЖЖ. Сегодня читаю комментарий и понимаю, что чел прав на все 100%.
xeim2 писал(а):А зачем изобретать велосипед с собственными скриптами, если есть Netwatch ?
http://wiki.mikrotik.com/wiki/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%B0:%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B_(Tools)/Netwatch

Вот так-то, а я совсем забыл про него.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
V palto
Сообщения: 47
Зарегистрирован: 12 дек 2014, 16:21

podarok66 писал(а):Э нет, это работает, у меня стоит проверка уже несколько часов и все срабатывает. Так что и у Вас должно срабатывать однозначно.

Снова уезжал от железок, протестирую теперь.

А про netwatch я писал в самом первом сообщении этой темы следующие строки:

V palto писал(а):Netwatch не катит, т.е. далеко не все клиентские хосты отвечают на пинги.


Т.е. суть "изобретения" скриптового велосипеда в том, чтобы не тупо пингом смотреть живость хоста, а искать IP или MAC либо в таблице ARP, либо в Leases DHCP-сервера.


Аватара пользователя
podarok66
Модератор
Сообщения: 4351
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

А парсить логи Вам не вариант? Как бы давно отработанное решение, немного переписать под себя и будет контролироваться этот самые вход-выход. Вон у меня приятель, упрямый, как ...
Пристал, вот сделай ему сброс динамических клиентов в leases именно по переполнению пула и не раньше. И срок аренды вот чтобы 72 часа, и нельзя снижать. А там точка проходная, сеть без пароля, за пару часов получаем полный пул. Вот на парсинге и выполз, кривовато, но пока криков не слышу уже недели три :-) Значит все устраивает.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
V palto
Сообщения: 47
Зарегистрирован: 12 дек 2014, 16:21

Итак, обкатал ранее предложенный вариант.
Работает, есть вопрос:
Получается, что мне не надо создавать отдельный скрипт с текстом

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

:global StatIP "OFFline"
, а можно создать шедулер с этим кодом в теле и запускать по стартапу. А если мне надо наблюдать не за одним таким IP, а за двумя или более? Надо создать несколько таких глобальных переменных, например StatIP1, StatIP2 и т.д., ну и скрипт под каждый IP добавить, так?

podarok66 писал(а):А парсить логи Вам не вариант?

Может и вариант, натолкните на правильное направление примером скрипта....Пожалуйста.


Аватара пользователя
podarok66
Модератор
Сообщения: 4351
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Я в ЖЖшке писал, Вас вспоминая :smu:sche_nie: и по дороге накропал что-то вот такое. Проверьте, не факт, что сразу заработает. Я просто писал не проверяя на работоспособность. Если где-то будет косячить, пишите сюда, поправим...
Насчет нескольких устройств, которые надо отследить - пока не думал, что-то подвалило дел, может попозже и обмозгую, если напомните.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
EdkiyGluk
Сообщения: 241
Зарегистрирован: 21 сен 2014, 08:34
Откуда: 34
Контактная информация:

Извеняйте, если вдруг не в тему... Просто реально нет времени перечитать всю ветку от начала до конца... Оперирую тем, что успел прочитать....
Парсить логи - очень долго... Особенно если логи большие... В итог мы можем заиметь бесконечное количество одновременно запущенных скриптов и 100% загрузки CPU...
Два скрипта...
1) Первый скрипт пингует айпишку... если айпишка пингуется - добавляем её в адрес лист "ONline"
Если айпишка перестала пинговаться создаём Offline и грохаем ONline... и наоборот соответственно....

2) Второй скрипт чекает адресЛист на предмет ONline/OFFline... если такой есть - отправляем письмо\смс... и грохаем online из списка (дабы ещё раз не отправлять)
Так же поступаем с OFFline....
======
Нужен ещё какой-то "маячковый" адрес-лист, который будет говорить второму скрипту "всё окей.. ничего не делай"... Первый скрипт так же должен обращать внимание на "маячок".... Думаю, логика моей идеи понятна....
Я по такому же принципу делал отправку бекапа и\или логов на почту по портКнокингу.
====
Если идея норм - могу написать скрипт
====
А вообще.... почему бы не пользовать нетвач?.... *и тут остапа понесло
====
Пример отправки бекапа по названию адресЛиста
###
:local wlist "SEND_BACKAP";
:local tmp "";
:local tmp1 "";

:if ( [/ip firewall address-list find ] != "") do={
:foreach i in [/ip firewall address-list find list=$wlist] do={
:set tmp [/ip firewall address-list get $i address];
:foreach x in [/ip firewall address-list find list~"SEND_BACKAP"] do={
:set tmp1 [/ip firewall address-list get $x address];
:if ( $tmp1 = $tmp) do={
/system script run SEND_BACKUP;
/ip firewall address-list remove $x
:log warning "БЕКАП ОТПРАВЛЕН!!"
}
}
}
}


Аватара пользователя
podarok66
Модератор
Сообщения: 4351
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Идейка норм, только в первом посту:
V palto писал(а):Netwatch не катит, т.е. далеко не все клиентские хосты отвечают на пинги.

То есть идея пинга как бы отвергается ТС с самого начала, равно как и NetWatch. Поэтому и подумал о логах. Я больших логов на железках не держу, стандартных 100 строк. А уж их-то машинка одолеет, я думаю.
Я правда, не знаю, какие цели преследует ТС. Видимо, для него это важно, раз тема поднимается им не впервые и с приличным временным разрывом. Я, в основном, участвую в теме из-за азарта и любви к головоломкам. Никаких иных целей у меня нет. Практического применения скрипту для себя не вижу. Кроме разминки для мозгов...
О группе контролируемых устройств пока не думал, как бы нет спокойствия в окружении.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
WhiteWolf
Сообщения: 55
Зарегистрирован: 15 сен 2015, 09:10
Откуда: НСК

Идея запуска скрипта DHCP сервером в принципе верна, а с большим временем аренды справится планировщик периодически исполняющий /ip dhcp-server lease check-status [find mac-address=XX:XX:XX:XX:XX:XX] и никакого пинга :)


Аватара пользователя
podarok66
Модератор
Сообщения: 4351
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

WhiteWolf писал(а):Идея запуска скрипта DHCP сервером в принципе верна, а с большим временем аренды справится планировщик периодически исполняющий /ip dhcp-server lease check-status [find mac-address=XX:XX:XX:XX:XX:XX] и никакого пинга :)

Ну тогда прокомментируйте вариант ситуации. Как бы и статус соответствует, но отклика нет, и устройство пока вроде как тут по вашему)):
Изображение


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Ответить