Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • 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
    Оповещения на основе порогового значения пропускной способности

    Оповещения на основе порогового значения пропускной способности

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Оповещения на основе порогового значения пропускной способности, RouterOS
     
    tomasi
    Guest
    #1
    0
    11.09.2017 02:09:00
    Привет! Можно ли настроить оповещения на основе порогов пропускной способности? Например: мои провайдеры по каждому каналу дают по 1 Гбит/с. Хочу получать уведомления, когда трафик слишком высокий или слишком низкий.
     
     
     
    LatinSuD
    Guest
    #2
    0
    17.04.2019 12:13:00
    Это не работает на версии 6.39.2. Не сработает и это: https://wiki.mikrotik.com/wiki/Manual:Scripting-examples#Check_bandwidth_and_add_limitations
     
     
     
    rustybike
    Guest
    #3
    0
    14.03.2020 12:54:00
    Вот что я сделал, используя стартовый код jspool (спасибо, я тебе пиво должен). Надеюсь, это кому-то поможет. Это оповещение о высоком трафике с последующим вторичным оповещением, когда трафик возвращается к норме… (предполагается, что у вас настроен Tools > Email и созданы собственные элементы Traffic Monitor для входящего/исходящего трафика, высокого/нормального уровня).

    ################ Планировщик BW Alert (ввести в консоли) ################

    /system scheduler add interval=5m name=High-BW-Alert-Int on-event=":global lastHbwStatus;\r\
       \n:set \$lastHbwStatus Normal;" policy=read,write,policy,test start-time=startup

    ################ Скрипт High для ether1 (on event, Traffic Monitor) ################

    # Проверяем, существует ли глобальная переменная, если нет – создаём с дефолтным значением
    :if (($lastHbwStatus != "Normal") && ($lastHbwStatus != "Alerting")) do={
    :global lastHbwStatus
    :set $lastHbwStatus Normal
    }

    # Проверяем, не было ли уже оповещения в этом цикле, если было – игнорируем повтор
    :if ($lastHbwStatus = "Normal") do={
    # скрипт оповещения
    /interface monitor-traffic [/interface find name=ether1] once do={
    :local tx (tx-bits-per-second / 1024 / 1024);
    :local rx (rx-bits-per-second / 1024 / 1024);
    :local txp (tx-packets-per-second);
    :local rxp (rx-packets-per-second);

    :log error "Входящий трафик слишком высокий на ether1 $rx Мбит/с";

    /tool e-mail send body="Входящий трафик слишком высокий на ether1 в $[/system clock get time] \r\n \r\n Входящий BW: $rx Мбит/с \r\n Входящий PPS: $rxp \r\n Исходящий BW: $tx Мбит/с \r\n Исходящий PPS: $txp" subject="Входящий трафик слишком высокий на ether1" to="email@yourcompany.com";
    }
    :set $lastHbwStatus Alerting
    :set $lastNbwStatus Ready
    } else={
    :log info "Система уже прислала оповещение — пропускаю повтор"
    }

    ################ Скрипт Normalized для ether1 (on event, Traffic Monitor) ################

    # Проверяем, существует ли глобальная переменная, если нет – создаём с дефолтным значением
    :if (($lastNbwStatus != "Paused") && ($lastNbwStatus != "Ready")) do={
    :global lastNbwStatus
    :set $lastNbwStatus Paused
    }

    # Проверяем, было ли вызвано оповещение высокого уровня, если нет – игнорируем
    :if ($lastNbwStatus = "Ready") do={
    # скрипт оповещения
    /interface monitor-traffic [/interface find name=ether1] once do={
    :local tx (tx-bits-per-second / 1024 / 1024);
    :local rx (rx-bits-per-second / 1024 / 1024);
    :local txp (tx-packets-per-second);
    :local rxp (rx-packets-per-second);

    :log error "Входящий трафик нормализовался на ether1 $rx Мбит/с";

    /tool e-mail send body="Входящий трафик нормализовался на ether1 в $[/system clock get time] \r\n \r\n Входящий BW: $rx Мбит/с \r\n Входящий PPS: $rxp \r\n Исходящий BW: $tx Мбит/с \r\n Исходящий PPS: $txp" subject="Входящий трафик нормализовался на ether1" to="email@yourcompany.com";
    }
    :set $lastNbwStatus Paused
    } else={
    :log info "Оповещение высокого уровня не сработало — игнорируем"
    }

    ################ Скрипт High для исходящего трафика ether1 (on event, Traffic Monitor) ################

    # Проверяем, существует ли глобальная переменная, если нет – создаём с дефолтным значением
    :if (($lastHbwStatus != "Normal") && ($lastHbwStatus != "Alerting")) do={
    :global lastHbwStatus
    :set $lastHbwStatus Normal
    }

    # Проверяем, было ли уже оповещение в этом цикле, если было – игнорируем повтор
    :if ($lastHbwStatus = "Normal") do={
    # скрипт оповещения
    /interface monitor-traffic [/interface find name=ether1] once do={
    :local tx (tx-bits-per-second / 1024 / 1024);
    :local rx (rx-bits-per-second / 1024 / 1024);
    :local txp (tx-packets-per-second);
    :local rxp (rx-packets-per-second);

    :log error "Исходящий трафик слишком высокий на ether1 $tx Мбит/с";

    /tool e-mail send body="Исходящий трафик слишком высокий на ether1 в $[/system clock get time] \r\n \r\n Входящий BW: $rx Мбит/с \r\n Входящий PPS: $rxp \r\n Исходящий BW: $tx Мбит/с \r\n Исходящий PPS: $txp" subject="Исходящий трафик слишком высокий на ether1" to="email@yourcompany.com";
    }
    :set $lastHbwStatus Alerting
    :set $lastNbwStatus Ready
    } else={
    :log info "Система уже прислала оповещение — пропускаю повтор"
    }

    ################ Скрипт Normalized для исходящего трафика ether1 (on event, Traffic Monitor) ################

    # Проверяем, существует ли глобальная переменная, если нет – создаём с дефолтным значением
    :if (($lastNbwStatus != "Paused") && ($lastNbwStatus != "Ready")) do={
    :global lastNbwStatus
    :set $lastNbwStatus Paused
    }

    # Проверяем, было ли вызвано оповещение высокого уровня, если нет – игнорируем
    :if ($lastNbwStatus = "Ready") do={
    # скрипт оповещения
    /interface monitor-traffic [/interface find name=ether1] once do={
    :local tx (tx-bits-per-second / 1024 / 1024);
    :local rx (rx-bits-per-second / 1024 / 1024);
    :local txp (tx-packets-per-second);
    :local rxp (rx-packets-per-second);

    :log error "Исходящий трафик нормализовался на ether1 $tx Мбит/с";

    /tool e-mail send body="Исходящий трафик нормализовался на ether1 в $[/system clock get time] \r\n \r\n Входящий BW: $rx Мбит/с \r\n Входящий PPS: $rxp \r\n Исходящий BW: $tx Мбит/с \r\n Исходящий PPS: $txp" subject="Исходящий трафик нормализовался на ether1" to="email@yourcompany.com";
    }
    :set $lastNbwStatus Paused
    } else={
    :log info "Оповещение высокого уровня не сработало — игнорируем"
    }
     
     
     
    jonathanxpeers
    Guest
    #4
    0
    21.04.2020 09:26:00
    Привет! Спасибо за этот скрипт. У меня возникли несколько проблем, но это скорее из-за моего неполного понимания (предполагается, что у вас настроены Tools > Email и вы создали свои элементы Traffic Monitor для входящего / исходящего трафика, высокого / нормального уровня).

    Email — у меня это работает.  
    Traffic monitor — элементы есть, можете помочь с этим? (У меня дома оптика на 100 мегабит, full duplex).  
    Считаю, что высокий уровень — если скорость держится на 40-50 мегах слишком долго, а нормальный — в среднем 20 мег или меньше.

    Если можете помочь с настройкой ниже:  
    inbound = tool traffic-monitor add name=ffff interface=ether1-fibre ???  
    outbound = tool traffic-monitor add name=ffff interface=ether1-fibre ???  
    high = tool traffic-monitor add name=ffff interface=ether1-fibre ???  
    normal = tool traffic-monitor add name=ffff interface=ether1-fibre ???

    /system scheduler add interval=5m name=High-BW-Alert-Int — это имя планировщика, а как называется сам скрипт? (Я для себя назвал его High-BW-Alert-Int).

    С уважением!
     
     
     
    tomislav91
    Guest
    #5
    0
    12.10.2020 13:26:00
    Я добавил 4 порога около 2M просто для теста. Для In ether1 High Script я поставил порог выше 2M, а для In ether1 Normalized — ниже 2M по трафику, который принимается. Для передаваемого трафика я добавил Out ether1 Normalized и Out ether1-GW1 High Script. В результате получил 2 письма одновременно: одно с сообщением «Inbound Traffic Too High», другое — «Inbound Traffic Normalized».
     
     
     
    mao
    Guest
    #6
    0
    20.10.2020 11:25:00
    Привет, tomislav91! Что ты имеешь в виду под «создал свои собственные элементы Traffic Monitor для входящего/исходящего, высокого/нормального»? Как ты назвал эти элементы Traffic Monitor в своём примере? Можешь хотя бы привести пример с скриншотами? Большое спасибо. С уважением, M
     
     
     
    tomislav91
    Guest
    #7
    0
    21.10.2020 11:55:00
    Вот и всё?  
     
     

    а для HIGH tx я использую  
    ################ Out ether1 Normalized Script (on event, Traffic Monitor) ################

    # проверяем, существует ли глобальная переменная, если нет — создаём со значением по умолчанию  
    :if (($lastNbwStatus != "Paused") && ($lastNbwStatus != "Ready")) do={  
    :global lastNbwStatus  
    :set $lastNbwStatus Paused  
    }

    # проверяем, сработило ли оповещение о высоком трафике, если нет — игнорируем сигнал  
    :if ($lastNbwStatus = "Ready") do={  
    # скрипт оповещения  
    /interface monitor-traffic [/interface find name=ether1] once do={
    :local tx (tx-bits-per-second / 1024 / 1024);  
    :local rx (rx-bits-per-second / 1024 / 1024);  
    :local txp (tx-packets-per-second);  
    :local rxp (rx-packets-per-second);

    :log error "Outbound Traffic Normalized on ether1 $tx Mbps";

    /tool e-mail send body="BG Master CCR Outbound Traffic Normalized on ether1 at $[/system clock get time] \r\n \r\n Inbound BW: $rx Mbps \r\n Inbound PPS: $rxp \r\n Outbound BW: $tx Mbps \r\n Outbound PPS: $txp" subject="Outbound Traffic Normalized on ether1" to="myemail@something.rs";
    }  
    :set $lastNbwStatus Paused  
    } else={  
    :log info "Сигнал о высоком трафике не сработал — игнорирую оповещение"  
    }  

    и для normaltx  
    ################ Out ether1 High Script (on event, Traffic Monitor) ################

    # проверяем, существует ли глобальная переменная, если нет — создаём со значением по умолчанию  
    :if (($lastHbwStatus != "Normal") && ($lastHbwStatus != "Alerting")) do={  
    :global lastHbwStatus  
    :set $lastHbwStatus Normal  
    }

    # проверяем, не было ли уже оповещения в этом цикле, если было — игнорируем сигнал  
    :if ($lastHbwStatus = "Normal") do={  
    # скрипт оповещения  
    /interface monitor-traffic [/interface find name=ether1] once do={
    :local tx (tx-bits-per-second / 1024 / 1024);  
    :local rx (rx-bits-per-second / 1024 / 1024);  
    :local txp (tx-packets-per-second);  
    :local rxp (rx-packets-per-second);

    :log error "Outbound Traffic Too High on ether1 $tx Mbps";

    /tool e-mail send body="BG Master CCR Outbound Traffic Too High on ether1 at $[/system clock get time] \r\n \r\n Inbound BW: $rx Mbps \r\n Inbound PPS: $rxp \r\n Outbound BW: $tx Mbps \r\n Outbound PPS: $txp" subject="Outbound Traffic Too High on ether1" to="myemail@something.rs";
    }  
    :set $lastHbwStatus Alerting  
    :set $lastNbwStatus Ready  
    } else={  
    :log info "Система уже предупреждала — игнорирую оповещение"  
    }
     
     
     
    mustaDaBeast
    Guest
    #8
    0
    07.03.2024 10:10:00
    Пост от @tomislav91 помог мне настроить мою версию скрипта. Проверяем, существует ли глобальная переменная, и если нет — создаём значение по умолчанию:  
    :global lastNbwStatus  
    :set lastNbwStatus “Paused”  

    Скрипт оповещения  
    /interface monitor-traffic [/interface find name=“ether1”] once do={
     :local tx (tx-bits-per-second / 1000000); # конвертируем в Mbps  
     :local rx (rx-bits-per-second / 1000000); # конвертируем в Mbps  
     :if (($tx > 10) || ($rx > 10)) do={  
       :log warning “ether1 превысил 10 Mbps”  
     }  
    }  

    :set lastNbwStatus “Paused”  

     
     
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры