Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • 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
    Как использовать The Dude для мониторинга ИБП, подключенного к MikroTik

    Как использовать The Dude для мониторинга ИБП, подключенного к MikroTik

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Как использовать The Dude для мониторинга ИБП, подключенного к MikroTik, RouterOS
     
    pelish
    Guest
    #1
    0
    19.05.2010 12:06:00
    Привет! После долгих поисков на форумах и тестирования я наконец-то нашёл решение, как мониторить мои APC UPS, которые подключены к серверам MikroTik через последовательный или USB-кабель. Поскольку стандартные SNMP OID использовать нельзя (в MikroTik SNMP сейчас не включает данные от UPS), нужно применять функции The Dude и создавать собственные функции/запросы.

    Для этого я использовал функцию ros_command(), которая позволяет отправлять команды и получать ответы от сервера RouterOS. Обратите внимание, что нужно настроить The Dude так, чтобы он подключался к серверу, который мониторит ваш UPS — то есть нужно прописать логин и пароль в настройках устройства. Также убедитесь, что ваш UPS называется «ups1» (если нет, придётся переименовать в следующих функциях).

    После этого можно использовать следующие функции:

    ups_status() (возвращает 1, если UPS в сети, 0, если нет)
    if (string_substring(ros_command("/system ups monitor ups1 once"), string_find(ros_command("/system ups monitor ups1 once"), "on-line") + 9, 3), "1", "0")

    ups_battery_charge() (возвращает заряд батареи в %)
    round(
     string_substring(ros_command("/system ups monitor ups1 once"),
     string_find(ros_command("/system ups monitor ups1 once"), "battery-charge") + 16,
     3)
    )

    ups_temperature() (возвращает температуру в градусах Цельсия)
    round(
     string_substring(ros_command("/system ups monitor ups1 once"),
     string_find(ros_command("/system ups monitor ups1 once"), "temperature") + 13,
     2)
    )

    Кроме того, нужна функция, которая будет возвращать 1, если UPS доступен, и 0, если нет. Я сделал такой код (хотя он неидеальный — в будущем планирую улучшить):

    ups_available()
    if (string_size(ros_command("/system ups monitor ups1 once")) > 40, "1", "0")

    По этим примерам вы можете создавать свои запросы и изменять официальные функции для полноценного мониторинга UPS. Я также написал ещё одну функцию, которая собирает информацию об UPS, и слегка модифицировал оригинальную функцию device_performance(). Вот они:

    ups_info()
    concatenate(
     if(ups_available() > 0, concatenate("ups: ", round(ups_battery_charge()), "% "), ""),
     if(ups_available() > 0, concatenate("temp: ", round(ups_temperature()), "C "), "")
    )

    device_performance() (модификация оригинальной функции — добавляет данные UPS, если он доступен)
    concatenate(
     if(string_size(cpu_mem_disk()) > 0,
       concatenate(cpu_mem_disk(), "\n"),
       ""
     ),
     if(string_size(ups_info()) > 0,
       concatenate(ups_info(), "\n"),
       ""
     )
    )

    Последнее — создать зонд (probe), который будет показывать, когда ваш UPS в сети или вне сети, а также отображать график заряда батареи. Вот мой пример:

    ups status — Тип зонда: Function  
    Агент: Default  
    Доступен: ups_available()  
    Ошибка: if(ups_status(), "", "Off-line")  
    Значение: ups_battery_charge()  
    Единицы: %  
    Частота: none

    Вот и всё из моих примеров. Пока RouterOS не даст нам полноценный SNMP OID с состоянием UPS — этот способ будет полезен. Всё это только пример, обязательно делайте бэкап конфигурации The Dude перед изменениями. И да, уверен, что моё решение — не единственное, но оно работает.

    Буду рад любым предложениям по улучшению!

    С уважением, Pelish
     
     
     
    crodler
    Guest
    #2
    0
    18.06.2011 21:19:00
    Не сработало у меня с ROS5.2, поэтому публикую свои изменения. Я использую два зонда: один для заряда батареи, другой — для напряжения сети.  

    Функции:  

    ups_available  
    array_size(ros_command("/system ups monitor ups1 once"))  

    ups_status  
    if (string_substring(ros_command("/system ups monitor ups1 once"), string_find(ros_command("/system ups monitor ups1 once"), "on-line")+9, 3), "1", "0")  

    ups_battery_charge  
    round(string_substring(ros_command("/system ups monitor ups1 once"), string_find(ros_command("/system ups monitor ups1 once"), "battery-charge")+16, 3))  

    ups_line_voltage  
    round(string_substring(ros_command("/system ups monitor ups1 once"), string_find(ros_command("/system ups monitor ups1 once"), "line-voltage")+13, 4))  

    Зонды:  

    Имя: ups-status  
    Тип: Функция  
    Агент: сервер  
    Доступность: ups_available()  
    Ошибка: if(ups_status(), "", "down")  
    Значение: ups_battery_charge()  

    Имя: ups-linevoltage  
    Тип: Функции  
    Агент: сервер  
    Доступность: ups_available()  
    Ошибка: if(ups_status(), "", "down")  
    Значение: ups_line_voltage()  

    С уважением, Christian Rodler  
    ENSINCA NETWORKS
     
     
     
    pelish
    Guest
    #3
    0
    20.06.2011 12:15:00
    Ты пробовал использовать SNMP UPS OID, который доступен с версии 5.x? Мне кажется, это уже устарело... Единственное, чего всё ещё не хватает — замена датчика батареи.
     
     
     
    crodler
    Guest
    #4
    0
    21.06.2011 17:36:00
    Хмм, у меня есть RB450G и X86 с версией 5.4 и APc-UPS на последовательной линии, но я не получаю никакой информации, например, о сетевом напряжении через SNMP. Получаю только модель UPS и версию, больше ничего. Может, я что-то делаю не так?
     
     
     
    pelish
    Guest
    #5
    0
    22.06.2011 07:40:00
    Скачай UPS MIB откуда-нибудь и ты увидишь, какой OID использовать и как…
     
     
     
    crodler
    Guest
    #6
    0
    23.06.2011 08:49:00
    Скачайте UPS MIB откуда-нибудь, и вы увидите, какие OID использовать и как… snmpwalk …| grep 1.3.6.1.2.1.33  
    .1.3.6.1.2.1.33.1.1.2.0 = STRING: "Smart-UPS SC420"  
    .1.3.6.1.2.1.33.1.1.3.0 = STRING: "725.1.I"  
    .1.3.6.1.2.1.33.1.2.1.0 = INTEGER: 2  # статус батареи  
    .1.3.6.1.2.1.33.1.2.3.0 = INTEGER: 8340  # оставшееся время в минутах  
    .1.3.6.1.2.1.33.1.2.5.0 = INTEGER: 1377  # напряжение батареи  
    .1.3.6.1.2.1.33.1.2.7.0 = INTEGER: 0  # температура  
    Я не могу получить никакой информации про вход UPS и выход UPS, например, входное/выходное напряжение.
     
     
     
    crodler
    Guest
    #7
    0
    23.06.2011 09:14:00
    Я имею в виду что-то вроде этого:
     
     
     
    pelish
    Guest
    #8
    0
    23.06.2011 10:11:00
    Извини… действительно, SNMP UPS OID содержит всего несколько данных… надеюсь, разработчики Mikrotik тоже добавят остальные. Например, замена батареи — это очень важно. Так что молодцы, что обновили мою старую работу.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры