Мониторинг температуры в серверной с помощью USB Temper1 и Zabbix

serv-2pv

В один прекрасный день, войдя в серверную, обнаружилось, что сплит система не охлаждает помещение и не известно сколько времени сервера работали в жарких условиях. Было принято решение наладить мониторинг температуры. Поиск возможных вариантов решений вывел на устройство USB Temper1 — простой USB-термометр в комплекте с которым идет ПО для Windows способное отправлять письма, если температура превысила заданный предел. На деле выяснилось, что этот софт ненадежный и часто подводит. Да и годится он скорее для рабочих станций, нежели для сервера. Следующим шагом стала необходимость разобраться, как заставить работать термометр с ОС Linux, которую мы используем на серверах, а в идеале еще и с системой мониторинга Zabbix.

Имеется:

  • Градусник USB Temper1
  • Сервер с установленной ОС Debian
  • Zabbix-сервер версии 2.0

В сети был найден рабочий инструмент — утилита для получения данных с USB-термометра:

http://bitplane.net/2012/01/temper1-ubuntu/

Установка:

  1. Установка зависимостей

$ aptitude install sudo git build-essential libusb-0.1.4 libusb-0.1.4-dev

  1. Скачивание самой утилиты

$ cd /usr/local/bin

$ git clone git://github.com/bitplane/temper.git

  1. Установка

$ cd temper

$ make clean

$ make

  1. Запуск утилиты

$ sudo ./log.sh

Вывод будет примерно таким:

01-Aug-2014 12:44,19.531118

01-Aug-2014 12:45,19.531469

01-Aug-2014 12:46,19.531543

В стандартный вывод поступают данные в формате Дата-время, градусы C°.

Но так как нужно настроить связку с Zabbix, то необходимо выполнить следующие команды:

  1. Создать скрипт temperlog.sh

$ vi /usr/local/bin/temper/temperlog.sh

Со следующим содержимым:

#!/bin/sh

sudo -u root /usr/local/bin/temper/temper | /usr/bin/cut -c19-20

exit

cut –c19-20 означает, что из вывода программы temper, будут отбираться только данные из строки на позиции 19 и 20, как раз там расположены целочисленные показания температуры (01-Aug-2014 12:44,19.531118) которые и будут переданы Zabbix-агентом на сервер.

  1. Назначить скрипту права на выполнение

$ chmod +x /usr/local/bin/temper/temperlog.sh

  1. Чтобы у пользователя zabbix, под которым работает агент, были права на выполнение скриптов в папке temper, необходимо в файл /etc/sudoers добавить следующую строку:

zabbix ALL=(ALL) NOPASSWD:/usr/local/bin/temper/

  1. Затем в конфигурационный файл Zabbix-агента /etc/zabbix/zabbix_agentd.conf нужно добавить UserParameter:

UserParameter=usb.temperatur,/usr/local/bin/temper/temperlog.sh

  1. Выполнить перезапуск агента

$ service zabbix-agent restart

Настройка элемента данных в Zabbix-сервере для USBTemper1

В панели управления Zabbix находим сервер, который только что был настроен на работу с градусником, и добавляем ему новый элемент данных:

Заполнить все поля по образцу и нажать «сохранить».

 

Затем следует добавить триггер, который будет срабатывать при достижении температуры заданного предела:

В данном случае это >23 С°. Заполняем по образцу и жмем «сохранить».

 

Для отслеживания динамики изменения температуры можно настроить график:

Так же всё по образцу и «Сохранить».

Вот так выглядит график:

temperature4

Может оказаться полезным триггер, когда градусник вдруг «упал» или его выдернули из сервера:

В этом случае Zabbix-сервер отработает событие и пришлет уведомление, если от термометра не поступило никаких данных в течении 5 минут.

На этом всё, настройка завершена. Если будут вопросы или какие-то проблемы с настройкой, то смогу ответить в комментариях.

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*