Генератор Netwatch для MikroTik
Следите за шлюзом провайдера и другими хостами прямо с роутера: перечислите хосты, выберите интервал и способ уведомления, и получите готовый скрипт Netwatch с оповещениями о падении и восстановлении.
Работает в вашем браузере; ничто из введённого не покидает ваше устройство
Создаёт записи RouterOS /tool netwatch, которые пингуют IPv4-хосты (type=icmp в v7, старая форма host= в v6) и запускают скрипт при каждой смене состояния. Проверить на вашем роутере здесь нельзя, поэтому просмотрите каждую строку перед применением. Токен бота и настройки почты хранятся на роутере открытым текстом. Netwatch работает на роутере и не может сообщить, что сам роутер ушёл в офлайн. MikroTik и RouterOS — товарные знаки SIA Mikrotīkls. Этот инструмент независим, не связан с MikroTik и не одобрен MikroTik.
Как настроить оповещения Netwatch на MikroTik
- Перечислите хосты для наблюдения, дав каждому метку: сначала шлюз провайдера, затем надёжные публичные адреса, например 8.8.8.8 и 1.1.1.1.
- Выберите интервал и таймаут, версию RouterOS (v7 или v6) и способ уведомления: тема ntfy, бот Telegram или e-mail.
- Скопируйте скрипт или скачайте файл .rsc, вставьте его в терминал роутера и проверьте /tool netwatch print и /log print.
Netwatch в RouterOS
Netwatch, находящийся в /tool netwatch, опрашивает хост каждые interval и хранит его состояние: доступен или недоступен. Хост считается недоступным, если не ответил в пределах timeout. При каждой смене состояния RouterOS выполняет down-script или up-script записи, и именно там отправляется оповещение: /tool fetch публикует в тему ntfy или вызывает URL Telegram sendMessage, а /tool e-mail send использует почтовые настройки, уже заданные на роутере.
Наблюдайте больше чем за одним хостом. Один публичный адрес может отказать по причинам, не связанным с вашим каналом, поэтому сочетание шлюза провайдера с двумя независимыми публичными адресами показывает, где проблема — на последней миле или в интернете в целом. Держите таймаут короче интервала и избегайте очень коротких интервалов при большом числе хостов.
О чём Netwatch не расскажет
Netwatch работает на роутере, поэтому не может сообщить, что сам роутер ушёл в офлайн: отключение питания, сбой или мёртвый аплинк не оставляют ничего, что выполнило бы скрипт. Для этого нужна внешняя проверка, которая заметит, что роутер перестал отвечать. Прочитайте как получить оповещение, когда роутер MikroTik уходит в офлайн и используйте бесплатный внешний heartbeat. Если вы управляете трафиком на тех же каналах, сравните с генератором балансировки нагрузки, у которого failover использует собственные проверочные хосты.
Вопросы и ответы
Что делает Netwatch?
Netwatch пингует каждый хост с заданным интервалом. Когда хост перестаёт отвечать в пределах таймаута, он помечается как недоступный и один раз выполняется его down-script; когда отвечает снова, выполняется up-script. Созданные скрипты пишут строку в лог и, если вы выбрали способ, отправляют сообщение через /tool fetch или /tool e-mail.
Почему Netwatch не может сообщить, что сам роутер офлайн?
Netwatch — часть роутера. Если роутер лишился питания, завис или потерял аплинк, больше некому выполнить скрипт и отправить сообщение. Для этого нужна внешняя проверка, которая заметит, что роутер перестал отвечать. См. руководство по оповещениям о недоступности роутера и бесплатный внешний heartbeat.
Придёт ли мне сообщение о падении, когда откажет интернет-канал?
Часто не в тот же момент. Сообщение уходит через тот же роутер, поэтому если наблюдаемый хост — шлюз вашего единственного аплинка, down-script выполнится, но сообщение уйдёт только после восстановления канала. Тогда сообщение UP сообщит, что связь вернулась. Наблюдение за вторым каналом или хостом в LAN даёт оповещения, не зависящие от упавшего канала.
Чем отличается вывод для v7 и v6?
В RouterOS v7 записи содержат type=icmp, который выбирает ping-проверку. В RouterOS v6 параметра type нет, поэтому записи используют только host, interval и timeout. Если ваша версия v7 старая и отклоняет type=icmp, удалите его из каждой строки.
Как обрабатываются кавычки, обратные косые черты и знаки доллара в метках?
Метки и имя роутера экранируются для строк RouterOS: обратная косая черта, двойная кавычка, знак доллара и вопросительный знак получают по обратной косой черте. Скрипты хранятся в записи Netwatch как строки, поэтому экранирование применяется дважды: для сообщения и для сохранённого скрипта.
Отправляется ли куда-либо моя конфигурация или токен бота?
Нет. Всё создаётся в вашем браузере. После вставки скрипта к ntfy или Telegram обращается сам роутер, когда хост меняет состояние.