воскресенье, 12 июня 2016 г.

Мониторим питание 220В с оповещением по e-mail или SMS в Mikrotik без дорогостоящего APC SMART-UPS

  Согласно разделу WiKi Manual:System/UPS Mikrotik официально поддерживает UPS фирмы APC, и то только серии SmartUPS, хотя я лично подключал и Back-UPS. Роутер получает информацию с Back-UPS, но периодически отваливается подключение (подключение было по USB к роутеру RB951G ИБП Back-UPS 1100VA). SmartUPS такой проблемы не имеет, но и цена от 400$ не радует. Подключать можно как по USB так и через COM. В Mikrotik ИБП выдает довольно обширную информацию.

  Если в важных узлах покупка такого ИБП имеет смысл, то в удаленных офисах смысл покупки такого дорогого ИБП теряется, логичнее было использовать что-то попроще. Есть небольшое решение, которое не требует больших вложений, но позволяет следить за наличием напряжения сети 220 с устройства Mikrotik. 

  Теория такова, если взять Mikrotik, подключить его и другие устройства через ИБП, пусть даже такой, который вообще не имеет управления, и к порту Mikrotik подключить кабель RG-45 и замыкать нужные контакты через реле, то наличие линка можно отследить скриптом.
  Если взять пачкорд RG-45 который с одной стороны обжат коннектором, а с другой обрезанный и вставить в Mikrotik, то путем закорота двух пар можно создать иллюзию линка. Закорачивать нужно 2 пары: 1(бело-оранжевый) и 3(бело-зеленый), а так же 2(оранжевый) и 6(зеленый).

  Для того что-бы все работало нам нужно блок питания на 12 вольт и 2 реле, которые будут закорачивать каждая свою пару.  Либо одно реле на две независимых контактных групп, которое мне найти не удалось.
  Распиновку реле приводить не буду, все вызванивается элементарно тестером. При включении блока питания в сеть двумя релюшками замыкаются две пары(по одной на одну пару), на порту Микротика появляется линк. Этот линк мы отслеживаем скриптом, который при изменении статуса линка-отсылает смс или мыло. Сам БП мы включаем в обход ИБП к которому подключен Mikrotik. Таким образом- если выключится свет - Микротик еще будет работать(так как питается от ИБП), а блок питания релюшек нет, тем самым они разомкнуться (когда на них подается 12 вольт - они замкнуты и линк есть) и линк пропадет. 
  Релюшки спаяли с проводами, и поместили в корпус, корпусом выступил старый корпус от блока питания.



  Сам скрипт выполняется раз в 15 секунд. 
# Checking ether9 link
:local smtpserv [:resolve "smtp.yandex.ru"];
:local email "domain@yandex.ru";
:local pass Password;
:global "ether9-stat"
:global "ether9-laststat"
/interface ethernet monitor ether9-ups once do={:set "ether9-stat" $status}
:if ($"ether9-stat" != $"ether9-laststat") do={
/tool e-mail send server=$smtpserv port=587 user=$email password=$pass start-tls=yes to="admin@domain.ru"  from=$email subject="$[/system identity get name]: power status changed" body=("$[/system clock get date] \nInterface ether9 - link status changed to:\_" . $"ether9-stat");
:log info ("Interface ether9 - link status changed to: " . $"ether9-stat")
  :set "ether9-laststat" $"ether9-stat"
}
  Для отправки смс можно пользоваться сервисами которые предоставляют функцию "sms c e-mail", или "sms посредством http-запроса", сгенерированного прямо c Mikrotik. Например, у меня есть GSM-шлюз OpenVOX, для него запрос с Mikrotik на отправку SMS будет выглядеть так
/tool fetch url="http://10.2.10.55:80/sendsms\?username=admin&password=admin&phonenumber=0996666666&message=220v_propalo&[port=gsm-1.1&][report=noreport&][timeout=1]" mode=http   
  Это все возможно при условии, что если пропадается свет, у провайдера есть интернет, ну или при наличии в Микротике GSM-модема в USB, посредством которого можно отправлять смс напрямую. Так же, стоит учитывать что такая схема работает только с 100-мегабитными портами в Mikrotik, по крайней мере мне не удалось заставить гигабитный порт видеть линк таким образом. Вместо реле с блоком питания, как вы уже догадались, можно использовать любое устройство с портом RG-45 подключенное в обход ИБП напрямую в сеть (не рабочее с рабочим портом, глючное). Не забываем только порт изолировать на Микротике. 
  Недостатки у данного метода тоже имеются:
  •  все-таки мы создаем петлю;
  •  не видим всех параметров, которые может предоставить полноценный ИБП;
  •  занимаем один порт.


Используемый материал:

Подписаться на новые статьи.

6 комментариев:

  1. Можно использовать нормально-разомкнутое реле, в этом случае петля появится лишь в случае отключения света. Скрипт подправить, чтобы мониторил появление, а не падение линка на порту.

    ОтветитьУдалить
    Ответы
    1. Да! Именно! Такая же первая мысль появилась))

      Удалить
  2. :local Pstatus;
    /interface ethernet poe monitor ("ether"."5") once do={:set Pstatus $"poe-out-status"};

    :if ($Pstatus="powered-on") do={ :beep frequency=100 length=100ms;
    }

    ОтветитьУдалить
  3. есть ли у кого информация, как поднять линк на Гигабитном порту ?

    ОтветитьУдалить
  4. На гигабитном все работает, нужно только в настройках интерфейса снять галочки с 1000М

    ОтветитьУдалить