Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    запрос на функцию: сделать переменные доступными для скриптов netwatch

    запрос на функцию: сделать переменные доступными для скриптов netwatch

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    запрос на функцию: сделать переменные доступными для скриптов netwatch, RouterOS
     
    doneware
    Guest
    #1
    0
    14.06.2018 15:48:00
    Круто, что в netwatch появились скриптовые хуки, типа up-/down-скриптов. Но было бы намного приятнее, если бы скриптам были доступны какие-нибудь переменные, например: host since (именно время последнего изменения, а не то, которое вызвало срабатывание скрипта), routing-mark (что, кстати, подразумевает использование мониторинга в in-vrf), comment (чтобы можно было добавить уникальный идентификатор). Так мы смогли бы использовать одни и те же скрипты для разных записей netwatch.

    Ещё хотелось бы иметь возможность указывать source-interface/source-ip-address. И, может быть, добавить некоторое количество попыток, например, чтобы событие down срабатывало не после одного пропуска, а после нескольких подряд.
     
     
     
    cgood
    Guest
    #2
    0
    30.07.2018 21:11:00
    +1 vrf обязательно иметь
     
     
     
    Jotne
    Guest
    #3
    0
    31.07.2018 05:29:00
    Ты можешь использовать Splunk или syslog для части этих задач. Если отправлять эти лог-сообщения на внешний сервер syslog, на сервере будет видно, с какого IP они пришли, во сколько они поступили и какое именно сообщение ты решил отправить. Потом можно сделать графическую панель, которая покажет, когда связь поднялась или упала. Если сервер syslog находится в локальной сети, то будут приходить сообщения и о поднятии, и о падении связи. Если же сервер syslog на стороне WAN, и ты мониторишь WAN, то будет показываться только момент поднятия связи.
     
     
     
    Jotne
    Guest
    #4
    0
    21.12.2021 10:02:00
    Я бы хотел, чтобы комментарии тоже отправлялись из netwatch в скрипт. Так я мог бы получать и IP ($host), и устройство для отслеживания через комментарий ($comment). Мой скрипт netwatch для up/down, используемый с WireGuard, выглядит так:

    add dont-require-permissions=yes name=WireGuard_down source=\
       ":log info message=\"vpn=wireguard status=down host=\$host\""

    add dont-require-permissions=yes name=WireGuard_up source=\
       ":log info message=\"vpn=wireguard status=up host=\$host\""
     
     
     
    doneware
    Guest
    #5
    0
    03.08.2018 12:56:00
    Я не хочу использовать внешние инструменты для этого — хочу сделать всё прямо на устройстве. И уж точно не хочу создавать скрипты запуска/остановки с отдельными командами для генерации логов. Если я могу получить доступ к метаданным объекта в виде переменных, то сам решаю, хочу ли я полагаться на syslog как прослойку для стандартной логики или решить свои проблемы прямо на устройстве. Ведь события netwatch down могут сработать из-за сбоев, которые делают устройство неспособным связаться с внешними (центральными) элементами управления. К тому же в многих случаях «LAN» — это не ваша сеть, особенно в окружении провайдера услуг.
     
     
     
    Deantwo
    Guest
    #6
    0
    25.02.2020 15:00:00
    Это всё ещё не реализовано? По тому, что мой коллега где-то нарыыл, такое реально существует для скриптов оповещений DHCP-сервера. Не уверен, где он это взял, но попробуйте:

    :local hostname [/system identity get name]
    :local currentDate [/system clock get date]
    :local currentTime [/system clock get time]
    :local int "$interface"  
    :local addr "$address"  
    :local mac $"mac-address"

    /tool e-mail send to=my@e.mail subject=DHCP-Detected body=("ROGUE DHCP Server были обнаружены на $hostname в $currentDate $currentTime - Интерфейс= $int - IP адрес= $addr - MAC-адрес= $mac !!")

    Правда, кажется, это не описано в мануале. Так почему в Netwatch этого нет?
     
     
     
    howdey57
    Guest
    #7
    0
    17.01.2021 14:29:00
    doneware, ты получил какой-нибудь ответ по этому поводу? У меня есть скрипт Up, но я всё время забываю менять адрес получателя и текст письма.  
    :local target 192.168.0.2  
    :log error "Connection back to $target";  
    /tool e-mail send to="x@y" subject="Connection back $target" body="Problem"  

    Было бы гораздо проще, если бы это выглядело так (прости за псевдокод). Можно было бы вставить это во все поля и только правильно указать IP хоста:  
    :local target Host_of_this_Netwatch  
    if action_of_this_Netwatch = "Up"  
       :log error "Connection back to $target";  
    else  
       :log error "Connection lost to $target";  
    /tool e-mail send to="x@y" subject="$error" body="Netwatch"
     
     
     
    merlinthemagic7
    Guest
    #8
    0
    20.10.2021 07:38:00
    Привет, $host отображается в скрипте net watch, по крайней мере в версии 6.48.4. Похоже, это не связано с timeout, interval или status, поскольку они доступны.
     
     
     
    howdey57
    Guest
    #9
    0
    20.10.2021 09:04:00
    @merlinthemagic7 Спасибо — где ты это узнал? Есть какая-нибудь документация?
     
     
     
    howdey57
    Guest
    #10
    0
    20.10.2021 18:19:00
    Итак, у меня теперь есть 2 скрипта (не требующих никаких прав) под названиями NetwatchUp и NetwatchDown, которые вызываются Netwatch. Можно было бы обойтись одним скриптом, если бы я мог получить значение $status. Скрипты очень простые. NetwatchDown выглядит так:  
    :log error "Соединение с $host потеряно"  
    /tool e-mail send to="x@y" subject="$[/system identity get name] Соединение с $host потеряно" body="Проблема"
     
     
     
    karenlarson023
    Guest
    #11
    0
    20.10.2021 20:31:00
    +1 чувак
     
     
     
    merlinthemagic7
    Guest
    #12
    0
    24.10.2021 11:09:00
    Нашёл просто экспериментальным путём, этого нет в списке изменений.
     
     
     
    pe1chl
    Guest
    #13
    0
    21.12.2021 10:34:00
    Возможно, стоит просто передавать ID записи netwatch, чтобы оттуда получать все остальные параметры? (плюс, конечно, индикатор подключения/отключения)
     
     
     
    howdey57
    Guest
    #14
    0
    21.12.2021 10:40:00
    Просто размышляю... А что если посмотреть IP-адрес $host в списке DHCP-аренд? Назначить арендe имя (я так обычно делаю). Потом проверить netwatch с помощью $host, чтобы узнать текущий статус и получить комментарий (я собираюсь попробовать). Чарльз
     
     
     
    Jotne
    Guest
    #15
    0
    21.12.2021 12:08:00
    Я использую Netwatch, чтобы пинговать IP-адрес туннеля WireGuard, и он не основан на DHCP. Так что, учитывая твои советы, я могу добавить его в DNS и сделать запрос из Скрипта, чтобы получить имя оттуда.
     
     
     
    howdey57
    Guest
    #16
    0
    22.12.2021 16:38:00
    Вот что у меня получилось — один скрипт для управления и поднятием, и опусканием соединения. Имя машины я записываю в комментарий Netwatch. Если кто-то знает, как напрямую получить запись Netwatch, подскажите, пожалуйста? Charles  
    #########################################################################  
    # Один скрипт для управления Netwatch  
    #########################################################################  
    #:log error "Netwatch $host"  
    :local myStatus ""  
    :local myComment ""  
    # Нужно проверить каждую запись, потому что я не могу найти нужную конкретно  
    :foreach i in [/tool netwatch find] do={
       :if ( [/tool netwatch get number=$i host] = $host ) do={
           :set $myStatus [/tool netwatch get number=$i status]
           :set $myComment [/tool netwatch get number=$i comment]
       }  
    }  
    # Оповещение  
    :log error "Соединение $myStatus с $host — $myComment"  
    /tool e-mail send to="x@y" subject="$myComment $[/system identity get name] Соединение $myStatus с $host" body="Netwatch"
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры