Мониторинг температуры серверного помещения с помощью zabbix
У нас на работе возникла необходимость мониторить температуру серверного помещения и, в зависимости показания датчиков температуры, управлять кондиционерами. Условие было одно — мониторинг температуры должен был осуществляться с помощью zabbix; и была еще рекомендация для сбора данных о температуре: использовать устройство компании netping. В итоге было выбрано устройство netping 2/PWR-220 v2. Данное устройство позволяет подключить до 8 датчиков температуры, имеет 2 управляемые линии электропередачи, управляется по SNMP протоколу и имеет web-интерфейс для настройки.
И вот, наконец, я получил это устройство на тестирование. На сайте производителя были достаточно подробные инструкции по настройке устройства и по его интеграции с разными системами мониторинга, в частности и с zabbix, но этого поста не было бы, если бы все было так просто. Но, обо всем по порядку. Далее по пунктам расскажу, как я настраивал управление питанием. Данный вариант далеко не идеален и не претендует на такой, но думаю многим будет полезен.
Устройство NetPing настроек не требует, ну кроме того что ему надо указать IP.
1. Скачиваем шаблон NetPing для zabbix и импортируем его в zabbix.
2. Создаем новый хост в zabbix.
Все, теперь zabbix получает данные о температуры.
3. Теперь создаем триггер, чтобы производить включение/отключение питания при переходе через пороговое значение температуры.
Теперь если температура с первого датчика превысит 18 градусов по Цельсию, то триггер изменит свое состояние.
Все выше изложенное можно было бы найти покопавшись на сайте NetPing и приведено здесь для понимания следующих шагов.
Так как на данный момент в zabbix нельзя прикрутить выполнение скрипта к триггеру, то для управления питанием используется возможность запускать скрипт для отправки уведомлений об изменении состояния триггера. Для этого:
4. Создаем скрипт который будет включать/выключать питание.
Для написания данных скриптов надо знать OID. Его можно посмотреть в MIB файле, которые различаются от версии прошивки устройства NetPing. Для своей версии прошивки его можно скачать с сайта производителя.
Скрипт для включения питания на первой линии, который назовем PowerOnChennel1.
Скрипт выключения питания на первой линии, который назовем PowerOffChennel1
Теперь эти скрипты надо положить в /home/zabbix/bin.
5. Добавляем новый тип Media Type в zabbix
Создаем аналогичным образом Media Type для каждого скрипта.
6. Создаем группу и пользователя, на которого будет подвешано это уведомление.
7. Создаем Action, который будет подвешен на изменение состояния триггера, в состояние Problem.
Аналогично создаем Action, которое будет происходить, когда тригер вернется в нормальное состояние, и будет выключать питание с помощью скрипта PowerOffChennel1.
Все. Теперь можно следить за температурой в реальном времени и автоматизировать включение кондиционеров.
И вот, наконец, я получил это устройство на тестирование. На сайте производителя были достаточно подробные инструкции по настройке устройства и по его интеграции с разными системами мониторинга, в частности и с 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 комментариев