В предыдущей статье было показано, как можно организовать мониторинг температуры с помощью программного пакета MRTG и устройств NetPing TS v2, а так же вскользь упомянута возможность использования триггеров MRTG для своевременного оповещения технического персонала при выходе температуры за допустимые пределы.
Эта статья является дополнением к предыдущей и преследует своей целью показать возможные способы обработки ситуации с выходом температуры из допустимых границ.
Способ #1: отправка e-mail
Самое простое и логичное действие - отправить электронное письмо. Это можно сделать средствами MRTG, для этого нужно добавить в файл /etc/mrtg.cfg после строки:
ThreshDir: /tmp
Вот такие строки:
# Адрес SMTP-сервера, через который будет отправлено письмо ThreshMailServer: 127.0.0.1 # Адрес отправителя письма ThreshMailSender: mrtg@our_domain.com
А в конец файла нужно добавить строки:
# Пороговое значение (при превышении будет отправлено письмо) ThreshMaxO[netping]: 29 # Адрес, на который будет отправлено письмо ThreshMailAddress[netping]: monitoring@our_domain.com
Теперь при достижении температурой отметки в 30 градусов и выше в центр мониторинга будет отправлено письмо, следующего вида:
Threshold BROKEN ---------------- Temperature Target: netping Type: thresh Direction: o Bound: max Threshold: 29 Current: 33
А когда температура опустится до отметки 29 градусов и ниже, будет отправлено вот такое письмо:
Threshold UN-BROKEN ------------------- Temperature Target: netping Type: thresh Direction: o Bound: max Threshold: 29 Current: 28
Этот же способ можно использовать и для отправки SMS-сообщений, поскольку многие сотовые операторы предоставляют для своих абонентов услугу mail2sms, когда с номером мобильного связывается e-mail и все письма, приходящие на этот e-mail, перенаправляются на номер абонента в виде SMS.
Способ #2: Отправка сообщений через Jabber
Этот способ может обеспечить более быструю реакцию оперативного персонала чем e-mail, но штатными средствами MRTG отсылать сообщения в Jabber нельзя, зато можно выполнять внешний скрипты, чем мы и воспользуемся.
Отправлять сообщения в Jabber из скриптов можно самыми разными способами. Мы будем использовать утилиту sendxmpp. Для начала установим её:
apt-get install sendxmpp
Отправлять сообщения будем с аккаунта mrtg@our_domain.com с паролем secret на аккаунт monitoring@our_domain.com. Здесь будет приведено готовое решение. Кому интересны подробности работы этой утилиты могут найти их в её документации.
Создадим пару скриптов, которые будут выполнятся при превышении текущей температуры максимально-допустимое значение и при возврате значения в норму. Оба скрипта в качестве параметров получают имя графика в MRTG, пороговое значение параметра и текущее значение.
Первый скрипт нужно сохранить как /root/scripts/netping_bad.sh. Его содержимое будет иметь вид:
#!/bin/sh echo "Problem on sensor ${1}! Thersold value: ${2} Current value: ${3}" | sendxmpp \ --username mrtg \ --password secret \ --jserver our_domain.com monitoring@our_domain.com
Второй скрипт нужно сохранить как /root/scripts/netping_good.sh. Его содержимое будет иметь вид:
#!/bin/sh echo "Solverd problem on sensor ${1}! Thersold value: ${2} Current value: ${3}" | sendxmpp \ --username mrtg \ --password secret \ --jserver our_domain.com monitoring@our_domain.com
Далее нужно добавить в конец файла /etc/mrfg.cfg строки:
ThreshMaxO[netping]: 29 ThreshProgO[netping]: /root/scripts/netping_bad.sh ThreshProgOKO[netping]: /root/scripts/netping_good.sh
Теперь дежурный специалист при перегреве оборудования получит сообщение в Jabber и сможет оперативно отреагировать на неполадку.
Способ #3: Включение дополнительной системы охлаждения
Здесь также возможно множество решений. Для начала определимся с аппаратной частью: поскольку для мониторинга температуры мы используем NetPing TS v2, то вполне разумно будет для управления системой охлаждения воспользоваться платой Netping Cooler Board 2+2, которая является дополнительным модулем для NetPing TS v2. Такой выбор позволяет сделать конструкцию максимально простой и компактной.
Для вклчючения и выключения реле на плате нужно будет посылать snmp-команды устройству. Для этого будем использовать утилиту snmpset из пакета snmp. Установим этот пакет:
apt-get install snmp
Мы будем использовать только первое реле, которые сначала надо сконфигурировать. Для этого нужно зайти на устройство, используя telnet, в главном меню выбрать пункт "DigiPing actions and settings" (ввести цифру три), в появившемся подменю нужно установить "Direction" в "Output" (ввести команду: "3 Output"). Всё, теперь реле сконфигурировано, и мы можем приступить к управлению им.
Для включения реле нужно по его oid записать единицу, а для выключения - ноль. Oid можно узнать в официальной документации. Для тех кому лень её читать, скажем, что для первого реле это "1.3.6.1.4.1.25728.50.8.116".
Полностью команда на включение реле имеет вид:
snmpset -v 1 -c SWITCH 192.168.2.10 1.3.6.1.4.1.25728.50.8.116 integer 1
А на выключение:
snmpset -v 1 -c SWITCH 192.168.2.10 1.3.6.1.4.1.25728.50.8.116 integer 0
Настройки MRTG в этом случае идентичны настройкам для оповещения через Jabber и отличаются только "начинкой" скриптов. В случае управления реле скрипт /root/scripts/netping_bad.sh принимает вид:
#!/bin/sh snmpset -v 1 -c SWITCH 192.168.2.10 1.3.6.1.4.1.25728.50.8.116 integer 1 > /dev/null
А скрипт /root/scripts/netping_good.sh будет выглядеть вот так:
#!/bin/sh snmpset -v 1 -c SWITCH 192.168.2.10 1.3.6.1.4.1.25728.50.8.116 integer 0 > /dev/null
Этот вариант можно скомбинировать с отсылкой e-mail в службу мониторинга. Тогда при перегреве оборудования будет включаться долполнительная система охлаждениея и оповещаться оперативный персонал, вмешательство котрого реально потребуется только в совсем критических ситуациях, так что можно говорить о почти полной автоматизации контроля температуры.
Заключение
Устройство NetPing TS v2 достаточно функционально, и позволяет сильно упростить и даже автоматизировать контроль температуры в помещении. И хотя настройка мониторинга и управления температурой требует некоторых навыков программирования, в конечном итоге можно получить полностью самостоятельную систему, практически не нуждающуюся в обслуживании.
P.S.
Во время тестирования Netping Cooler Board 2+2 автор этой статьи включал не систему охлаждения, а всего лишь светодиод и в какой-то момент была создана простешая "мигалка", в основе которой находился вот такой скрипт:
#!/bin/sh while true; do snmpset -v 1 -c SWITCH 192.168.2.10 1.3.6.1.4.1.25728.50.8.116 integer 1; sleep 1; snmpset -v 1 -c SWITCH 192.168.2.10 1.3.6.1.4.1.25728.50.8.116 integer 0; sleep 1; done
Что подсказало следующую идею: к устройству можно подключить гирлянду из ламп накаливая или светодиодов и заставить её мигать, поскольку на плате четыре реле, можно подключить четыре разных гирлянды и с помощью несложных скриптов переключать их создавая эффект "бегущего огня" и более сложные эффекты.
Это является ещё одним примером использования устройства, показывающим, что на самом деле область применения устройства не заканчивается на контроле температуры, а наоборот только начинается.
На этом всё. Приятной работы!
P.S. Статья написана по просьбе «Алентис Электроникс» и так же опубликована на сайте компании.
P.P.S. Отдельное спасибо Фроловой Марии за корректировку статьи.