В один прекрасный день, войдя в серверную, обнаружилось, что сплит система не охлаждает помещение и не известно сколько времени сервера работали в жарких условиях. Было принято решение наладить мониторинг температуры. Поиск возможных вариантов решений вывел на устройство USB Temper1 — простой USB-термометр в комплекте с которым идет ПО для Windows способное отправлять письма, если температура превысила заданный предел. На деле выяснилось, что этот софт ненадежный и часто подводит. Да и годится он скорее для рабочих станций, нежели для сервера. Следующим шагом стала необходимость разобраться, как заставить работать термометр с ОС Linux, которую мы используем на серверах, а в идеале еще и с системой мониторинга Zabbix.
Имеется:
- Градусник USB Temper1
- Сервер с установленной ОС Debian
- Zabbix-сервер версии 2.0
В сети был найден рабочий инструмент — утилита для получения данных с USB-термометра:
http://bitplane.net/2012/01/temper1-ubuntu/
Установка:
- Установка зависимостей
$ aptitude install sudo git build-essential libusb-0.1.4 libusb-0.1.4-dev
- Скачивание самой утилиты
$ cd /usr/local/bin
$ git clone git://github.com/bitplane/temper.git
- Установка
$ cd temper
$ make clean
$ make
- Запуск утилиты
$ 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, то необходимо выполнить следующие команды:
- Создать скрипт 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-агентом на сервер.
- Назначить скрипту права на выполнение
$ chmod +x /usr/local/bin/temper/temperlog.sh
- Чтобы у пользователя zabbix, под которым работает агент, были права на выполнение скриптов в папке temper, необходимо в файл /etc/sudoers добавить следующую строку:
zabbix ALL=(ALL) NOPASSWD:/usr/local/bin/temper/
- Затем в конфигурационный файл Zabbix-агента /etc/zabbix/zabbix_agentd.conf нужно добавить UserParameter:
UserParameter=usb.temperatur,/usr/local/bin/temper/temperlog.sh
- Выполнить перезапуск агента
$ service zabbix-agent restart
Настройка элемента данных в Zabbix-сервере для USBTemper1
В панели управления Zabbix находим сервер, который только что был настроен на работу с градусником, и добавляем ему новый элемент данных:
Заполнить все поля по образцу и нажать «сохранить».
Затем следует добавить триггер, который будет срабатывать при достижении температуры заданного предела:
В данном случае это >23 С°. Заполняем по образцу и жмем «сохранить».
Для отслеживания динамики изменения температуры можно настроить график:
Так же всё по образцу и «Сохранить».
Вот так выглядит график:
Может оказаться полезным триггер, когда градусник вдруг «упал» или его выдернули из сервера:
В этом случае Zabbix-сервер отработает событие и пришлет уведомление, если от термометра не поступило никаких данных в течении 5 минут.
На этом всё, настройка завершена. Если будут вопросы или какие-то проблемы с настройкой, то смогу ответить в комментариях.
Оставить комментарий