Статья: Мониторинг температуры MRTG+Digitemp

Решение проблем связванных с работой железа. Проблемы программно-аппаратной совместимости.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Капитан
рядовой
Сообщения: 31
Зарегистрирован: 2011-01-27 15:15:12

Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение Капитан » 2011-01-27 16:08:32

Встала задача наблюдать за температурой в серверной. Встроенные датчики оборудования для этой цели не сильно подходят. Поиск на просторах сети вывел на программу Digitemp. Программа умеет снимать показания с датчиков на двухпроводной шине.
Имеем
Сервер на FreeBSD 8.1 Release 64-bit с установленным WEB сервером Apache и работающим MRTG. Необходимо наличие свободного COM порта.
Железо
Схема простейшего контроллера содержится в архиве с исходными текстами (файл DS9097_Schematic.gif). Для сбора схемы с одним датчиком были закуплены в магазине «Чип&Дип» следующие детали:
1.Диод Шоттки - 1N5818 – 2шт.
2.Стабилитрон на 3,9 В - BZX55C3v9 – 1шт.
3.Стабилитрон на 6,2 В - BZX55C6v2 – 1шт.
4.Резистор на 1,5 КОм – 1шт.
5.Датчик температуры DS1820 – 1шт.
6.Корпус разъема DB9 – 1шт.
7.Разъем DB9 мама (Female) – 1шт.

Всё это дело обошлось примерно в 420р. По ценам января 2011 года.
Если руки растут из правильных мест, и имеете навык общения с паяльником, всю схему можно разместить в корпусе разъёма навесным монтажом.
Автор не несёт ответственности за возможные негативные последствия вызванные попытками применить на практике материалы данной статьи!
Полупроводники имеют штриховую маркировку. Штриху соответствует катод (по схеме: катод – штрих, анод – треугольник). Датчик, повернутый спилом вверх, ножками к нам, маркируется с лева на право. Датчик я вывел обычной витой парой. Третий контакт не соединял – датчику хватает и паразитного питания. Если потребуется, дополнительные датчики подключаются параллельно. Каждый датчик имеет уникальный ID, так что не запутаетесь.

Возможные грабли:
Перед закупкой деталей убедитесь, что COM порт вашего сервера мониторинга имеет стандартное питание 9 В. Померьте напряжение между 4 и 5 контактом. Убил кучу времени пытаясь завести схему на сервере Hewlett Packard с 5-ти вольтовым портом. У стандартного порта напряжение между 4 и 5 контактом будет примерно 10-11,5 вольт. Для низковольтных портов используется другая схема контроллера. Мне в результате пришлось подсоединить контроллер к другому серверу и снимать показания через NRPE (но это уже будет другая статья).
Софт
В портах этой программы не оказалось.
Придётся ставить вручную из исходников. Исходники можно скачать с сайта разработчиков по адресу:
http://www.digitemp.com
Для компиляции понадобится gmake, если не установлен, собираем из портов

Код: Выделить всё

#cd  /usr/ports/devel/gmake
#make install clean
#rehash
Начинаем ставить Digitemp.

Код: Выделить всё

#mkdir  /«какая-нибудь временная папка с исходниками»
#cd  /«какая-нибудь временная папка с исходниками»
#fetch http://www.digitemp.com/software/linux/digitemp-3.6.0.tar.gz
#tar -xzvf digitemp-3.6.0.tar.gz
После разархивирования у нас появится папка
/«какая-нибудь временная папка с исходниками»/digitemp-3.6.0

Код: Выделить всё

#cd digitemp-3.6.0
#gmake ds9097
После компиляции в папке появится исполняемый файл digitemp_DS9097. Проверяем:

Код: Выделить всё

#./digitemp_DS9097
Программа выведет встроенный Help. Всё ОК.
В принципе, кроме этого файла нам больше ничего и не нужно.
Создаём рабочую папку нашей системы наблюдения за температурой.

Код: Выделить всё

#mkdir /usr/local/etc/digitemp/
#cp digitemp_DS9097 /usr/local/etc/digitemp/digitemp
#rm –r  /«какая-нибудь временная папка с исходниками»
#cd /usr/local/etc/digitemp
Контроллер присоединён к COM1, выполняем его инициализацию.

Код: Выделить всё

#./digitemp -i -s /dev/cuau0
Будет выведена информация о найденных датчиках и создан файл конфигурации .digitemprc примерно следующего содержания:
TTY /dev/cuau0
READ_TIME 1000
LOG_TYPE 1
LOG_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F"
CNT_FORMAT "%b %d %H:%M:%S Sensor %s #%n %C"
HUM_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F H: %h%%"
SENSORS 1
ROM 0 0x28 0x4B 0xD1 0xC7 0x02 0x00 0x00 0xF0
Как видно, у меня один датчик. Нумерация датчиков начинается с нуля.
Пробуем снять показания.

Код: Выделить всё

#/usr/local/etc/digitemp/digitemp -a -c /usr/local/etc/digitemp/.digitemprc
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Jan 27 12:51:38 Sensor 0 C: 23.62 F: 74.53
Точность до сотых долей градуса нам не нужна Фаренгейты тоже и, дальнейшее курение Help-а позволяет создать нам итоговую команду вывода показаний температуры. Она будет выглядеть следующим образом:

Код: Выделить всё

#/usr/local/etc/digitemp/digitemp -t 0 -q -o "%.C" -c /usr/local/etc/digitemp/.digitemprc
24
Так гораздо приятнее :).

Теперь прикручиваем это всё к MRTG
Для начала немного лирики (теория). Исторически MRTG предназначен для показа графиков загрузки всяческих сетевых интерфейсов. Значения для этих графиков берутся из показаний соответствующих программных счётчиков снимаемых по протоколу SNMP. Для построения одного графика на входе MRTG должен получить четыре параметра:
1.Значение счётчика входящего трафика (зелёный граф);
2.Значение счётчика исходящего трафика (синий граф);
3.Uptime;
4.Как это всё называется.

Курение манов MRTG показало, что можно снимать значения и других параметров (не только загрузки сетевых интерфейсов) по протоколу SNMP, также существует возможность получать значения для графиков из результатов выполнения какого либо выражения (команды). Главное чтобы вывод был понятен MRTG. В качестве команды возвращающей 4 значения в голову сразу пришла команда cat читающая четырёх строчный файл.
Пора перейти к практике.
Нам нужен скрипт, который будет снимать периодически показания температуры, и создавать четырёх строчный файл в нужном формате.

Код: Выделить всё

#ee /usr/local/etc/mrtg/thermo.sh
Добавляем такие строки:
#!/bin/sh
echo 0 > /usr/local/etc/mrtg/thermal.log
echo `/usr/local/etc/digitemp/digitemp -t 0 -q -o "%.C" -c /usr/local/etc/digitemp/.digitemprc ` >> /usr/local/etc/mrtg/thermal.log
echo "15 days, 23:09:18" >> /usr/local/etc/mrtg/thermal.log
echo "Thermal State" >> /usr/local/etc/mrtg/thermal.log
Небольшой комментарий для тех, кто слабо знаком с работой echo. Первая команда создаёт новый файл /usr/local/etc/mrtg/thermal.log с одной строкой содержащей 0. Вторая команда дописывает в этот файл вторую строку содержащую текущее значение температуры. Третья дописывает в третью строку значение Uptime. Четвёртая – в четвёртую название параметра (из головы).
Делаем скрипт исполняемым и пробуем запустить

Код: Выделить всё

#chmod +x /usr/local/etc/mrtg/thermo.sh
#/usr/local/etc/mrtg/thermo.sh
Проверяем

Код: Выделить всё

#cat /usr/local/etc/mrtg/thermal.log
0
24
15 days, 23:09:18
Thermal State
Как можно заметить, я собираюсь рисовать график синим цветом, соответственно, показания датчика пишутся во вторую строку. Значение Uptime меняться не будет, применительно к температуре оно не имеет смысла, в третью
строку выводится значение с потолка (серверной) :). Теперь необходимо добавить запись в cron на периодический запуск этого скрипта. У меня MRTG запускается тоже через cron каждые пять минут (чаще нельзя). Показания температуры будем снимать с таким же интервалом.

Возможные грабли:
Опрос датчика температуры длится довольно длительное время. В .digitemprc стоит параметр
READ_TIME 1000
одна секунда. Реально получается чуть меньше 750мс. Т.е. скрипт не получится стартовать с такими же параметрами, как и MRTG – данные просто не успеют подготовиться.
У меня работает так:
*/5 * * * * root /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
4,9,14,19,24,29,34,39,44,49,54,59 * * * * root /usr/local/etc/mrtg/thermo.sh
Настало время править конфигурационный файл MRTG.
Примечание:
У меня направление движения графика по-умолчанию, цвета тоже «родные».
Добавляем в конфигурацию следующие строки:
Target[thermal]: `/bin/cat /usr/local/etc/mrtg/thermal.log`
Pagetop[thermal]: <h1>Thermal State in My Town</h1>
Title[thermal]: Thermal State
PNGTitle[thermal]: Thermal State in Server Room
MaxBytes[thermal]: 50
AbsMax[thermal]: 50
LegendI[thermal]: Outer
LegendO[thermal]: Inner
kMG[thermal]: C
Options[thermal]: nopercent,gauge,noinfo
YLegend[thermal]: Temp, C
ShortLegend[thermal]:
Legend1[thermal]: external
Legend2[thermal]: internal
Я оставил возможность подцепить на двухпроводную шину второй датчик (например - в офисе) и выводить его зелёным цветом. В этом случае первая строка thermo.sh будет такая:

Код: Выделить всё

echo `/usr/local/etc/digitemp/digitemp -t 1 -q -o "%.C" -c /usr/local/etc/digitemp/.digitemprc ` > /usr/local/etc/mrtg/thermal.log
После того, как MRTG запустится и «раскачается», график будет доступен по адресу:
http://мойсервермониторинга/mrtg/thermal.html

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение Alex Keda » 2011-01-27 19:14:28

схему приложите, и на сайт можно

зачот! =))
=========
хотя, конеччно, интеерсно было бы собрать показания с трёх-четырёх точек на одном графике
было бы показательно понаблюдать....
Убей их всех! Бог потом рассортирует...

Аватара пользователя
QweЯty
лейтенант
Сообщения: 796
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение QweЯty » 2011-01-28 3:30:57

и где я раньше был, у меня данная схема уже как 9 месяцев работает:)

показывает температуру в тени, на солнце, увлажненного датчика и температуру батарей(по просьбе коменданта общаги)

правда я собирал в rrdtool все на одном графике...делал по примеру с демониады(оттуда взял скрипт для генерации картинки)

схема
Изображение
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение Alex Keda » 2011-01-28 9:04:24

статью давай =)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Капитан
рядовой
Сообщения: 31
Зарегистрирован: 2011-01-27 15:15:12

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение Капитан » 2011-01-28 12:01:44

Alex Keda писал(а):хотя, конеччно, интеерсно было бы собрать показания с трёх-четырёх точек на одном графике
было бы показательно понаблюдать....
MRTG может только два значения на одном графике (третье - как функция от первых двух). ИМХО, больше и не надо. Мы же не в ГИС Метео работаем :)

Статью сделал, но не разобрался с картинками и с номером раздела :(


Аватара пользователя
BlackCat
прапорщик
Сообщения: 469
Зарегистрирован: 2007-10-16 22:40:42

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение BlackCat » 2011-01-30 3:16:27

Капитан, интересный материал, спасибо.
А где собственно сама статья на сайте?
=====
QweЯty, даёшь статью для народа!


Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение Alex Keda » 2011-01-30 14:05:19

лучше в очумелые ручки засунуть куданить...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение Alex Keda » 2011-01-30 14:06:59

+ пожелание - привести отечественные аналоги радиодеталей.
я, например, принципиально стараюсь инородные не брать.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Капитан
рядовой
Сообщения: 31
Зарегистрирован: 2011-01-27 15:15:12

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение Капитан » 2011-01-31 0:00:56

Alex Keda писал(а):лучше в очумелые ручки засунуть куданить...
На недельке сделаю отдельно про изготовление контроллера с фотками.
Просто на подходе использование этого дела в Nagios (для оповещения) . . . Ну чтоб не повторяться ;-)
Alex Keda писал(а):+ пожелание - привести отечественные аналоги радиодеталей.
я, например, принципиально стараюсь инородные не брать.
Стабилитроны
3,9 в - КС407Б
6,2 в - КС405А
А вот Шоттки наши делали для импульсников на токи от 5А и выше. Маломощных что-то не припомню. Все они идут в 220-х корпусах :( Тяжко с ними схему запихнуть в корпус разъёма :(
А так, по характеристикам, ближе всех будут, наверное, КД269А.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение Alex Keda » 2011-01-31 17:21:20

у меня дома пачка валяется отечетсвенных - навыпаивал из импульсников всяких древних компов, когад в армии утилизировал всё это =)
да, большие, зато сжечь трудно =))
Убей их всех! Бог потом рассортирует...

sSpeaker
проходил мимо
Сообщения: 2
Зарегистрирован: 2011-01-31 23:53:01

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение sSpeaker » 2011-02-01 0:01:26

Уже достаточно давно работает дома. Делалось весной и сначала работало на MRTG, но потом пришла зима и пришлось перейти на cacti. MRTG не может рисовать отрицательные значения(не нашол как это сделать).

Аватара пользователя
gloom
лейтенант
Сообщения: 738
Зарегистрирован: 2008-03-13 16:29:12
Откуда: UA

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение gloom » 2011-02-01 0:12:36

единственное что очень неприятно ето цена на датчик коло 15$ штука

sSpeaker
проходил мимо
Сообщения: 2
Зарегистрирован: 2011-01-31 23:53:01

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение sSpeaker » 2011-02-01 0:20:10

С польшы заказивал по 15 грн(2$) за штуку. 18B20

Аватара пользователя
Zedik
сержант
Сообщения: 283
Зарегистрирован: 2007-01-20 22:30:57
Откуда: 127.0.0.1

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение Zedik » 2011-02-01 8:15:34

Я датчики покупал с ебея, там они чуть ли не по 80 русских за штуку.
а вот через usb-com переходник не пробовали подключать?
пробовал запустить, но не виден датчик
kernel: ugen0: Prolific Technology Inc. USB-Serial Controller D, rev 1.10/4.00, addr 2
и потом
# ./digitemp_DS9097 -i -s /dev/ugen0
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
owAcquire: failed to set attributes: Invalid argument
Error 24: Failed to initialize system resource
кто нибудь сталкивался?

вот интересная статья по сборке метеостанции с подключением к компу

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение Alex Keda » 2011-02-01 9:15:53

Zedik писал(а):Я датчики покупал с ебея, там они чуть ли не по 80 русских за штуку.
а вот через usb-com переходник не пробовали подключать?
пробовал запустить, но не виден датчик
kernel: ugen0: Prolific Technology Inc. USB-Serial Controller D, rev 1.10/4.00, addr 2
телепатирую, что там вольт 5, а то и меньше на ком-порту получается.
в USB питание 5 вольт же

http://forum.lissyara.su/viewtopic.php?f=5&t=31047
кросс-линк, на всякий случай. чтоб не разбредались =))
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Капитан
рядовой
Сообщения: 31
Зарегистрирован: 2011-01-27 15:15:12

Непрочитанное сообщение Капитан » 2011-02-01 11:03:28

Zedik писал(а):а вот через usb-com переходник не пробовали подключать?
пробовал запустить, но не виден датчик
Грабли №1
Alex Keda писал(а):телепатирую, что там вольт 5, а то и меньше на ком-порту получается.
в USB питание 5 вольт же
Эт точно

Аватара пользователя
Zedik
сержант
Сообщения: 283
Зарегистрирован: 2007-01-20 22:30:57
Откуда: 127.0.0.1

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение Zedik » 2011-02-01 11:35:32

хм, попробую замерить все же, потому как под виндой на ПК через usb переходник все нормально

Аватара пользователя
QweЯty
лейтенант
Сообщения: 796
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение QweЯty » 2011-02-02 15:56:43

единственное что очень неприятно ето цена на датчик коло 15$ штука
хм... у нас в магазине радиозапчастей... 75 р за штуку
вот интересная статья по сборке метеостанции с подключением к компу
схема интересная.. а вот стоимость деталей ого-го... один 1600 второй 1200 стоит... дорого:(

хотя если у кого-то завалялись:)
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
QweЯty
лейтенант
Сообщения: 796
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение QweЯty » 2011-02-02 21:18:55

ага, схема интересная...
тока большой минус.. помимо того что цены заоблачные....
прога под винду заточена, и исходников программы нету, уже спрашивал автора...
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
Капитан
рядовой
Сообщения: 31
Зарегистрирован: 2011-01-27 15:15:12

Руководство по пайке

Непрочитанное сообщение Капитан » 2011-02-03 21:53:42

Добавил описание изготовления в "Очумелые ручки"
http://www.lissyara.su/articles/mad_han ... 97+ds1820/
На очереди использование сабжа в Нагиос

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение Alex Keda » 2011-02-03 23:09:13

Самая дорога деталь
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение Alex Keda » 2011-02-03 23:11:45

+ пофиксил заголовок для меню
слишком большой был
Убей их всех! Бог потом рассортирует...

Аватара пользователя
QweЯty
лейтенант
Сообщения: 796
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: Статья: Мониторинг температуры MRTG+Digitemp

Непрочитанное сообщение QweЯty » 2011-02-04 0:44:49

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

нога хоть и корототкая но, сволочь, чувствительная к ВЧ помехам... очень часто будет выскакивать при опросе датчика 85 С - сигнал ошибки.

хотя вы не живете возле универа который усеян радиопередающими антеннами и 2мя радиолокаторами поблизости от общаг... так что наверное можно и так оставить. а у нас кастрюли с утюгами вещают иногда радиопереговорю любителей
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение