Инструмент Netwatch


Netwatch отслеживает состояние хостов в сети посредством ICMP-запросов по заданным адресам. При изменениях состояния хоста netwatch запускает произвольный пакет консольных команд.
Введение

Инструмент netwatch находится в меню
WinBox->Tools->Netwatch

.

Текущее состояние netwatch, в режиме только для чтения:

/tool netwatch print

<в разработке>

Пример: Управление ISP

(С) @HawK3D  toster.ru

Для повышения точности проверки доступности интернета, для исключения ложных переключений, например, при возможных проблемах на опрашиваемой стороне или кратковременных сбоях в сети, потерянных пакетах и т.п. — используется 2 независимых проверочных адреса (можно использовать адреса различных публичных dns, например Google и Yandex) — x.x.x.x и y.y.y.y Адрес x.x.x.x — указывается в настройках хоста Netwatch, если пинга нет — начинает работать «down», который делает 5 попыток пинга к y.y.y.y и если все 5 попыток также неудачны — скрипт продолжает работу и активирует/деактивирует маршруты в соответствии с comments в таблицах маршрутизации. Первая удачная попытка прерывает дальнейшее выполнение скрипта, при этом никаких изменений маршрутов или других действий не происходит. К этим проверочным ип-адресам прописаны статические маршруты через шлюзы соответствующих провайдеров, а в фаерволе добавлены правила, запрещающие исходящий пинг на эти адреса через другие интерфейсы.
В скрипт добавлен вывод сообщений в лог, а также отправка СМС с информацией о том с каким провайдером и в какое время возникла проблема. Отправка СМС реализована с помощью сайта sms.ru.
api_id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX — уникальный id — выдаваемый при регистрации на sms.ru
to=79********* — номер телефона, на который осуществляется отправка СМС. Если в качестве номера указывается тот же, что и при регистрации на сайте — 5 СМС в сутки бесплатно.

Скрипт события Down
/log warning "server x.x.x.x fail…"
:local time [/sys clock get time] 
:local checkip [/ping y.y.y.y count=5] 
:if (checkip = 0) do={
/log error «ISP1 IS DOWN» 
/ip route set [find comment="main"] disabled=yes
/ip route set [find comment="reserve"] disabled=no 
:delay 1 
/tool fetch url="http://sms.ru/sms/send?api_id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&to=79*********&text=ISP1_IS_DOWN_$time" keep-result=no }
Скрипт события Up
/log warning «ISP1 IS UP»
/ip route set [find comment="reserve"] disabled=yes
/ip route set [find comment="main"] disabled=no

Источники

  • Руководства:Инструменты (Tools)/Netwatch wiki.mikrotik.com
  • Как работает mikrotik netwatch? toster.ru

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *