Pull to refresh

Mikrotik на страже температуры

Reading time3 min
Views34K
Здравствуйте, хабрлюди!

Предыстория

Небольшой завод, небольшая серверная (2x4 метра), парк стоечных серверов, хранилищ, ИБП. Кондиционер который работает круглосуточно/круглодично.

Мир, труд, 1 мая, 7 утра звонок с завода, охрана: «Сработала пожарная сигнализация в серверной, горячая дверь, запаха гари нет.». Даю инструкцию дальнейших действий: «Вооружаемся рядом стоявшим огнетушителем, открываем дверь, еду.» По дороге звонок: «Дверь открыли, ничего не горит там жарко.» Говорю: «Оставить открытой дверь.»

Через 30 минут после первого звонка я возле серверной. Действительно жарко. Сервера неприятно шумят куллерами. Кондиционер отключен. Рубильником отключаю кондиционер, жду, включаю обратно, «пик», но не холодит. Вызываем кондционерщика обслуживающего нашу организацию, проверяем давление газа в кондиционере, газ есть но давление маленькое, добавляем газа, холодит. Закрываем дверь ждем, заходим, прохлада, сервера приятно шумят куллерами. Договариваемся об поиске места утечки. Расходимся. Шашлык. 1 мая, труд. мир.

Далее под кат.

Задача

Мониторинг температуры в серверной.

1. Всякого рода дополнительные датчики, с уведомлениями куда угодно.
Есть организация которая занимается у нас пожарной и всякого вида сигнализацией на заводе, ничего внятного предложить не смогли.
2. Принудительная вентиляция, с клапанами вентиляторами фильтрами.
Расположение серверной таково, что без проекта и подключения к этому дело разного вида служб нет возможности это сделать. Возможность конечно же есть, но желания у этих служб сводится к нулю. «Занимайся сам.»
3. Датчики в имеющемся железе.
На этом и остановился ради теста мониторинга и хоть какого то оповещения.

Развязка

В серверной много разношерстного железа. И все они содержат датчики, это факт. Но выбор пал именно на Mikrotik RouterBoard 2011UAS-RM. Объясню почему.

1. Он первый на кого дует кондиционер.
2. У него нет своего куллера.
3. Наличие датчика температуры.
4. Расположен в верхней части стойки.
5. Linux.
6. Свой скриптовый язык.
7. Наличие шары SMB.
8. Возможность отправки e-mail, смс не использую.

Все что нужно сделать это проверить его температуру. Уведомить на почту. Уведомить пост охраны. Если температура превышает нужное значения.

Tutorial

1. На Mikrotik есть интернет отправка e-mail настроена как надо и работает.
2. Пишем скрипт проверки температуры и отправки показаний на e-mail.

:global temp1
:set temp1 30
:global temp2 [/system health get temperature]

:if ($temp2 > $temp1) do= {/tool e-mail send to=email@email.ru subject=Warning_Temperature body="Warning!!! Room temperature  - $temp2 Degrees"}


Разберем :global temp1 переменная для порога температуры :set temp1 30 порог температуры :global temp2 [/system health get temperature] получаем температуру и заносим ее в переменную :if ($temp2 > $temp1) do= {/tool e-mail send to=email@email.ru subject=Warning_Temperature body="Warning!!! Room temperature - $temp2 Degrees"} тут все просто если полученная температура выше порога отправляем уведомление на почту. Переменные глобальные для других скриптов.

Данные скрипт в Scheduler с выполнением раз в 30 минут, а хотя по времени как хотите.

3. Оповещение охраны на посту. Так как серверная и пост охраны на разных этажах, но сеть то одна. И на посту большой телевизор с камерами подключенный к Windows машине.

Итак:

Включаем шару в Mikrotik /ip smb. Создаем пользователя, даем доступ к //mikrotik/pub.
Пишем скрипт.

:global t
:set t 1
:global f
:set f 0
/file set pub/temp.txt contents=$f

:if ($temp2 > $temp1) do= {/file set pub/temp.txt contents=$t}


Разберем. Переменная для плохой температуры :global t назначаем переменной единицу :set t 1 переменная для хорошей температуры :global f назначаем переменной нуль :set t 0 записываем в фал pub/temp.txt «0» /file set pub/temp.txt contents=$f проверяем температуру :if ($temp2 > $temp1) do= {/file set pub/temp.txt contents=$t} если температура выше нормы в файле pub/temp.txt 0 меняем на 1.

Данные скрипт в Scheduler с выполнением раз в 30 минут, а хотя по времени как хотите.

4. Оповещение Windows Машины на посту охраны.

Все что нужно это периодически читать файл //mikrotik/pub/temp.txt. Если в файле 0 ничего не делать, а если 1 то на экран (телевизор в моем случае) выводить большими красными буквами WARNING и другую информацию, которая будет полезна в решении проблемы. Данную программку можно спокойно написать хоть на чем. Под рукой был Delphi на нем и написали.

Да скажете колхоз и все такое, но пока такое решение. Пока беспокоить охрану не приходилось.
Tags:
Hubs:
+10
Comments31

Articles

Change theme settings