Отправка уведомлений о превышении темпертауры при помощи MRTG

Отправка уведомлений о превышении темпертауры при помощи MRTG

В предыдущей статье было показано, как можно организовать мониторинг температуры с помощью программного пакета 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

Что подсказало следующую идею: к устройству можно подключить гирлянду из ламп накаливая или светодиодов и заставить её мигать, поскольку на плате четыре реле, можно подключить четыре разных гирлянды и с помощью несложных скриптов переключать их создавая эффект "бегущего огня" и более сложные эффекты.

Это является ещё одним примером использования устройства, показывающим, что на самом деле область применения устройства не заканчивается на контроле температуры, а наоборот только начинается.

На этом всё. Приятной работы!

Автор: Вадим Калинников
E-mail: moose@ylsoftware.com
Web:
http://ylsoftware.com

Корректор: Фролова Мария
E-mail: smei.i.inaja@gmail.com