Мониторинг температуры серверного помещения с помощью zabbix

У нас на работе возникла необходимость мониторить температуру серверного помещения и, в зависимости показания датчиков температуры, управлять кондиционерами. Условие было одно — мониторинг температуры должен был осуществляться с помощью zabbix; и была еще рекомендация для сбора данных о температуре: использовать устройство компании netping. В итоге было выбрано устройство netping 2/PWR-220 v2. Данное устройство позволяет подключить до 8 датчиков температуры, имеет 2 управляемые линии электропередачи, управляется по SNMP протоколу и имеет web-интерфейс для настройки.
И вот, наконец, я получил это устройство на тестирование. На сайте производителя были достаточно подробные инструкции по настройке устройства и по его интеграции с разными системами мониторинга, в частности и с zabbix, но этого поста не было бы, если бы все было так просто. Но, обо всем по порядку. Далее по пунктам расскажу, как я настраивал управление питанием. Данный вариант далеко не идеален и не претендует на такой, но думаю многим будет полезен.

Устройство NetPing настроек не требует, ну кроме того что ему надо указать IP.

1. Скачиваем шаблон NetPing для zabbix и импортируем его в zabbix.

2. Создаем новый хост в zabbix.

Name: "Человеческое" имя хоста, например, «NetPing»
DNS name: Оставить пустым
IP address: <IP адрес устройства NetPing>
Connect to: IP address 
Port: 161
Monitored by proxy: (no proxy)
Status: Monitored
Link with Template: «Template_NetPing_TS_v2»


Все, теперь zabbix получает данные о температуры.

3. Теперь создаем триггер, чтобы производить включение/отключение питания при переходе через пороговое значение температуры.

Name: High temperature on sensor 1
Expression: <Имя хоста>:SWITCH_1.last(0)}>18
Event generation: Normal
Severity: «Warning»


Теперь если температура с первого датчика превысит 18 градусов по Цельсию, то триггер изменит свое состояние.
Все выше изложенное можно было бы найти покопавшись на сайте NetPing и приведено здесь для понимания следующих шагов.

Так как на данный момент в zabbix нельзя прикрутить выполнение скрипта к триггеру, то для управления питанием используется возможность запускать скрипт для отправки уведомлений об изменении состояния триггера. Для этого:

4. Создаем скрипт который будет включать/выключать питание.
Для написания данных скриптов надо знать OID. Его можно посмотреть в MIB файле, которые различаются от версии прошивки устройства NetPing. Для своей версии прошивки его можно скачать с сайта производителя.
Скрипт для включения питания на первой линии, который назовем PowerOnChennel1.

#!/bin/sh 
snmpset -v 1 -c SWITCH 192.168.0.11 1.3.6.1.4.1.25728.5800.3.1.3.1 i 1 > /dev/null


Скрипт выключения питания на первой линии, который назовем PowerOffChennel1

#!/bin/sh 
snmpset -v 1 -c SWITCH 192.168.0.11 1.3.6.1.4.1.25728.5800.3.1.3.1 i 0 > /dev/null


Теперь эти скрипты надо положить в /home/zabbix/bin.

5. Добавляем новый тип Media Type в zabbix

Description: PowerOnChennel1
Type: Script
ScriptName: PowerOnChennel1.sh


Создаем аналогичным образом Media Type для каждого скрипта.

6. Создаем группу и пользователя, на которого будет подвешано это уведомление.

7. Создаем Action, который будет подвешен на изменение состояния триггера, в состояние Problem.

Operation Type: Send Message
Send Message: Single User (выбираем созданного нами пользователя)
Send only to: PowerOnChennel1 
 Trigger = "NetPIng:High temperature on sensor 1"
 Trigger value = "PROBLEM"


Аналогично создаем Action, которое будет происходить, когда тригер вернется в нормальное состояние, и будет выключать питание с помощью скрипта PowerOffChennel1.
Все. Теперь можно следить за температурой в реальном времени и автоматизировать включение кондиционеров.


0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.