[Из песочницы] Бюджетный мониторинг температуры в Cерверной комнате (MP707+nettop c Linux+PRTG)

Свою первую статью на Хабре интересно написать по материалу, основанному на личном опыте и действиях. Для этот как раз подходит раздел DIY или Сделай сам.

Нижеописанная система уже работает больше года практически без перерыва.

Задача:


Собрать бюджетную (с минимальными затратами) стабильную систему для простого удаленного мониторинга температуры в Серверной комнате.

В Серверной установлены два кондиционера (сплит-системы), две 19» стойки с оборудованием (коммутационное оборудование + сервера + ИБП).

image
Решение собиралось из имеющихся под рукой устройств (некоторым более 10 лет уже было) и бесплатного ПО.

Список оборудования и ПО:

  • цифровой USB-термометр MP707 (диапазон измеряемых температур, -55…+125);
  • 10-летний неттоп с МП MSI A9830IMS, Intel Atom N270 (1 Сore\1.60 GHz), 1GB ОЗУ, 80GB HDD;
  • ОС и ПО для неттопа: Linux Mint 17.1 Cinnamon 32-bit + ПО BMcontrol + служба SNMP + bash-script;
  • ПО для мониторинга: PRTG Network Monitor 17.1.28.1341×64 на 100 сенсоров (бесплатное), установлено на внешнем ПК с Windows 7.


Устанавливаем в Серверной комнате датчик температуры (красным показано место установки):

image

Вот датчик закреплен на стойке:

image

Настройка Неттопа:

— устанавливаем Linux Mint, обновляем;

image

— подключаем к неттопу по USB-кабелю USB-термометр MP707;
— получаем id температурного датчика с помощью BMcontrol;
— проверяем работу датчика: «sudo /var/www/bmcontrol1 temp b0000002c6dded28»
— пишем простой скриптик на 10+ лет работы системы:

Скрипт
#!/bin/bash
count=0
sensor=`sudo /var/www/bmcontrol temp b0000002c6dded28`
while [ $count -lt 9000000 ]
do
(( count++ ))
echo $count
#echo $sensor
echo `sudo /var/www/bmcontrol1 temp b0000002c6dded28`
sudo /var/www/bmcontrol1 temp b0000002c6dded28 > /tmp/1.txt
sleep 60
done


— теперь у нас есть работающий и выдающий данные датчик, осталось передать эти данные в систему мониторинга — поднимаем службу SNMP и в конфиге snmpd.conf добавляем событие для передачи данных с датчика температуры, записанных в файл «extend .1.3.6.1.4.1.2021.51 ipmitemp /bin/cat /tmp/1.txt».

image

Настройка PRTG (это уже для данных с датчика)


(Главное, правильно интерпретировать данные с помощью регулярных выражений, путем экспериментов только получилось сделать как нужно эти настройки, внизу подсказка как они должны быть).

БАЗОВЫЕ НАСТРОЙКИ ДАТЧИКА Имя датчика SNMP Серверная Температура
Значение OID 1.3.6.1.4.1.2021.51.3.1.1.8.105.112.109.105.116.101.109.112
РАСШИРЕННАЯ ОБРАБОТКА
Интерпретировать результат как Строка (по умолчанию)
Извлекать числовое значение с помощью регулярного выражения
Регулярное выражение ([1–2][0–9].[0–9][0–9])

Теперь в ПО PRTG мы получаем данные по температуре из Серверной от датчика.

image

Не совсем простая система получилась, но очень дешевая (пришлось только датчик купить), да и как лабораторный вариант и потренироваться для настройки и понимания работы разных компонент — очень полезно.

В данный момент система работает более года (на этой неделе как раз проверил ее и перезапустил скрипт для профилактики) и далее будет еще развиваться, но это совсем другая история.

© Habrahabr.ru