Zabbix — мониторинг скорости вращения кулеров
Попалась на днях мне статья Zabbix 2.2: Мониторинг температуры процессора Windows машины опубликованная на Хабре.
Для своих нужд мониторю обычно температуру и состояние через программу CrystalDiskInfo, которая умеет оправлять письма в случае чего (умела раньше, сейчас что то разучилась). И жил я поглядывая через RDP в эту программу время от времени, пока не наткнулся на эту статью. Решил повторить сей подвиг…
Сложного скажу ничего в этом нет, я бы даже сказал все расписано по полочкам. Но в моем случае больше интересовала температура жестких дисков, в итоге основываясь на данный мануал были созданы батники следующего содержания:
1 2 3 |
@echo off for /F "usebackq tokens=7-10" %%a in (`C:\MonitorConsole\OpenHardwareMonitorReport.exe`) do echo %%b %%c %%d| find "/hdd/1/temperature/0">nul && set temper=%%a echo %temper% |
Больше потратил времени понять где какой диск используется и правильно ли показывает температуру.
А дальше задался вопросом, а почему бы не температуру мерить процессора, а скажем скорость вращения кулера у процессора. Тем самым можно будет определить когда скорость станет для нас критичной (что даст фору не большую) при нагревании процессора.
Для начала нам надо понять, что за кулеры у нас есть. Определяем их через OpenHardwareMonitorReport.
Создаем два bat файла (в моем случае это два кулера) следующего содержания:
1 2 3 4 5 |
@echo off for /F "usebackq tokens=7-10" %%a in (`C:\MonitorConsole\OpenHardwareMonitorReport.exe`) do echo %%b %%c %%d| find "/lpc/it8771e/fan/0">nul && set temper=%%a echo %temper% |
Добавляем в конфиг zabbix следующие строчки
1 2 3 |
UserParameter=Speed.FAN.1[*], C:\MonitorConsole\FAN-1.bat UserParameter=Speed.FAN.2[*], C:\MonitorConsole\FAN-2.bat |
Перезапускаем службу на машине где собираемся мониторить кулеры.
Подключаемся по ssh к zabbix с целью получения информации о скорости вращения кулеров
1 2 3 |
zabbix_get -s ip-server -k Speed.FAN.1 zabbix_get -s ip-server -k Speed.FAN.2 |
Если zabbix нам отдает верные числа и при этом нет никакой ошибки, переходим к настройке веб zabbix.
Создаем новый элемент данных, называем его SpeedCuler-CPU тип Zabbix агент (активный) ключ Speed.FAN.1 тип информации Числовой (с плавающей точкой) добавляем новую группу элементов данных и называем ее SpeedCuler
Аналогично создаем для второго SpeedCuler-Block ип Zabbix агент (активный) ключ Speed.FAN.2 тип информации Числовой (с плавающей точкой) добавляем в группу SpeedCuler.
Проверяем последние данные от агента с целью получения информации от кулеров.
Если получаем информацию с ошибкой вида Received value [1259.33] is not suitable for value type [Numeric (unsigned)] and data type [Decimal] Следует поиграться с типом информации, смена — замена на другой.
Если все сделали правильно, то переходим к созданию триггеров. Триггер нам нужен один, проще говоря у нас есть исходные значения — 1200 и 430. Будем считать их за стандартное значение кулера. Построим триггер на следующем заключении, если скорость ниже 1000 и если ниже 400.
Получилось следующее выражение:
Для системного блока
1 |
{srv01-home:Speed.FAN.2.last()}<400 |
Для процессора
1 |
{srv01-home:Speed.FAN.1.last()}<1000 |
Вставлять пальцы или иные предметы в кулер с целью тестирования я не стал, так как думаю от этого им станет только хуже. Но если вы все повторили за мной и произошел случай когда zabbix не сработал, просьба сообщить.
Update 08-02-2017
А письмо я в итоге получил, просто охладив системный блок воздухом с улицы.
2 комментария
Евгений
Этот метод подходит только для простых пк 32bit такие мало кто сейчас использует так как памяти у большинства более 4 гига значит 64 битная ос.
А OpenHardwareMonitorReport.exe для 64 бит пока найти не удается.
kanitelka
Евгений, используется на 2012R2 и нормально работает!