Настав момент коли захотілося віддалено моніторити температуру в серверній, а також стежити за тим як холодить кондиціонер.
Стежити за температурою ми будемо з Linux-хоста в якому є COM (RS-232)-порт. Якщо такий відсутній, то можна придбати перехідник USB-> RS232
Для вимірювання температури використовуються датчики температури DS1820 від Dallas
Схема підключення датчика DS1820
На цій схемі:
Два діода Шотки 1N5818
Стабілітрон 1N5228 3.9 V
Стабілітрон 1N5234 6.2 V
Резистор 1.5 кОм.
9 -pin'овий роз'єм (для підключення до Com - порту материнської плати)
При даній реалізації схеми ми використовуємо всього 2 дроти для підключення датчика (земля і харчування закорочені), що зменшує кількість використовуваних датчиків і максимальну довжину кабелю, за даними з інтернету - така схема може витягати 10датчіков на довжині 60м. Власне мені більше і не потрібно 🙂
Схема в зборі
Схему я спаяв на платі і помістив в корпус RS232 роз'єму.
фото:
Схемка в зборі
Установка і настройка Digitemp
Для збору інформації з датчиків використовується програма Digitemp
Установка програми в Gentoo:
USE = "ds9097" emerge digitemp
Установка програми в Ubuntu:
apt-get install digitemp
Тепер спробуємо форматувати датчики:
digitemp_DS9097 -i -s / dev / ttyS0 У відповідь нам видасть. Searching the 1-Wire LAN 10FBF32C020800C2. DS1820 / DS18S20 / DS1920 Temperature Sensor ROM # 0. 10FBF32C020800C2 Wrote .digitemprc
Власне все чудово.
Примітка: Якщо підключати схему через USB-перехідник. то необхідно в системі встановити libusb і включити в ядрі
а так-же вибрати правильний драйвер. Я не мучився і включив підтримку для майже всіх USB-контролерів.
При цьому ініціалізація датчиків відбувається десь так:
Власне в останньому рядку і є наша температура в серверній.
Тепер навчимо Cacti брати цю температуру і будувати графік.
Заходимо в настройки нашого хоста і додаємо Add Graph Template: SNMP - Generic OID Template
SNMP - Generic OID Template
Переходимо в розділ "Create Graphs for this Host". створюємо графік на основі шаблону
Create: SNMP - Generic OID TemplateЗ'явиться вікно налаштувань нового графіка:
Налаштування SNMP - Generic OID Template
У розділі Custom Data потрібно ввести значення oid в якому зберігається наша температура.
Його повний запис:
Воть так ось 🙂
Але і це не все! ))))
А якщо приватним підприємцем? Адміни уві сні графіки не бачать .... і потрібно їх якось повідомити про те, що відбувається.
Простіше простого.
Голосове сповіщення про температуру в серверній
Пишемо-с скрипт:
cat temp_warn.sh
#! / Bin / bash cd / scripts TEMP = `/ bin / bash checktemp | cut -b1-2` echo $ TEMP if [$ TEMP -gt 33] then echo "Temperature in DataCenter is" $ TEMP cp / scripts / callfile / var / spool / asterisk / outgoing / sendEmail -f [email protected] - t [email protected] -u "Message from DataCenter №1" -m "Temperature in DataCenter is critical" $ TEMP -s smtp.corp.ua:25 -xu [email protected] -xp password fi
Channel: DAHDI / g1 / Se0501113355 Application: Playback Data: temp-warning
temp-warning - це підготовлений звуковий файл який лежить в / var / lib / asterisk / sounds / en /
[Code] USE = "ds9097" emerge digitemp [/ code]
Краще заздалегідь створити /etc/portage/package.use/digitemp з вмістом
[Code] app-misc / digitemp ds9097 [/ code]
Якщо використовувати USE прямо під час складання, при оновленні системи будуть проблеми 🙂