Домой / Software / Zabbix / Мониторинг температуры в Zabbix

Мониторинг температуры в Zabbix

Сегодня появилась необходимость мониторить температуру рабочих станций на Windows. Системой мониторинга был выбран Zabbix, т.к. бесплатный, к тому же один из наиболее функциональных и развивающихся продуктов на рынке.

Нам потребуется:

  1. Установленная CentOS 7
  2. Настроенная CentOS 7
  3. Установленный Zabbix

Если у вас чего-то не хватает, можете перейти по ссылкам и ознакомиться с материалом.

Подготовка

Данным способом можно считывать показатели температуры не только с рабочих станций, но и с серверов. Хотя для последнего лучше использовать IPMI.

Для начала нам нужно скачать бесплатную утилиту OpenHardwareMonitorОна имеет графический интерфейс и умеет считывать температуру, напряжение, скорость вращения кулеров и многое другое. Приятным бонусом является консольная версия, которую и будем использовать.

GUI версия (для ознакомления):

Скачиваем консольную версию. 

Распаковываем ее в папку. У меня: C:\zabbix\ohm Теперь необходимо получить информацию в текстовом формате. Для этого создаем в папке с программой bat фал с таким содержимым:

C:\zabbix\ohm\OpenHardwareMonitorReport.exe > C:\zabbix\ohm\info.txt

Не забываем подставлять ваши пути. После запуска получаем info.txt :

Sensors

|
+- ASUS X75VB (/mainboard)
|
+- Intel Core i3-3120M (/intelcpu/0)
|  +- CPU Core #1    :                            (/intelcpu/0/clock/1)
|  +- CPU Core #2    :                            (/intelcpu/0/clock/2)
|  +- CPU Core #1    :                            (/intelcpu/0/temperature/0)
|  +- CPU Core #2    :                            (/intelcpu/0/temperature/1)
|  +- CPU Package    :                            (/intelcpu/0/temperature/2)
|  +- CPU Total      :  80.0505       50  80.0505 (/intelcpu/0/load/0)
|  +- CPU Core #1    :  78.7879       50  78.7879 (/intelcpu/0/load/1)
|  +- CPU Core #2    :  81.3131       50  81.3131 (/intelcpu/0/load/2)
|
+- Generic Memory (/ram)
|  +- Memory         :  41.8296  41.8296  41.8296 (/ram/load/0)
|  +- Used Memory    :  4.97281  4.97281  4.97281 (/ram/data/0)
|  +- Available Memory :  6.91544  6.91544  6.91544 (/ram/data/1)
|
+- Generic Hard Disk (/hdd/0)
|  +- Used Space     :  39.2338  39.2338  39.2338 (/hdd/0/load/0)

Нас интересует строка /intelcpu/0/temperature/2 По ней будем получать среднюю температуру CPU.

Создаем в этой же папке второй bat файл с названием tempCPU.bat 

@echo off
for /F "usebackq tokens=7-10" %%a in (`C:\zabbix\ohm\OpenHardwareMonitorReport.exe`) do echo %%b %%c %%d| find "/intelcpu/0/temperature/2" >nul && set temper=%%a 
echo %temper%

Где:

  1. C:\zabbix\ohm\OpenHardwareMonitorReport.exe путь к исполняемому файлу OpenHardwareMonitorReport.exe
  2. /intelcpu/0/temperature/2 идентификатор датчика полученное из info.txt

Теперь проверяем корректность работы скрипта.

Скрипт работает, результат 57 градусов. Это то значение, которое будет передаваться на сервер Zabbix.

Настройка Zabbix agent в Windows

Предполагается, что сервер Zabbix установлен и настроен, а интересующие хосты уже добавлены. Теперь редактируем файл конфигурации zabbix agent’а zabbix_agentd.win.conf который находится в \zabbix\conf

В конец дописываем:

### UserParameter
# UserParameter=ключ[*],команда
UserParameter=Temperature.CPU, C:\zabbix\ohm\tempCPU.bat

Перезапускаем службу агента zabbix, чтобы изменения вступили в силу.

Настройка Zabbix сервера

Теперь идем на zabbix сервер и добавляем новый Item. Сделать это можно несколькими способами:

  1. Добавить Item в уже имеющийся Шаблон, назначить триггеры и создать графики
  2. Добавить только необходимому хосту с присвоением триггера и графика

По логике добавить в уже имеющийся шаблон правильнее, но тут кроется подвох. На некоторых рабочих станциях температура вообще не определялась, на других было несколько камней, а температуру нужно снимать с обеих. Поэтому создаем Item для каждого хоста свой. Но если в вашем случае все хосты однотипные, смело добавляйте в шаблон. В принципе обе процедуры похожи, и при знании одного из вариантов, осуществить другой не должно составить труда.

Идем в Настройка -> Узлы сети -> Выбираем требуемый хост -> Элементы данных -> группы элементов данных CPU -> Создать элемент данных. Заполняем поля как указано в примере:

Сохраняем Элемент данных, идем в Мониторинг -> Последние данные. Через несколько минут там появится значение температуры.

Нажимаем График и смотрим:

 

Ошибки

Если после добавления элемента данных он отваливается с ошибками:

  1. item became not supported
  2. Timeout while executing a shell script

А в логах виднеется:

27614:20150702:065936.698 item «AdminLapTop:Temperature.CPU» became not supported: Timeout while executing a shell script.
27625:20150702:070938.720 item «AdminLapTop:Temperature.CPU» became supported

То есть данные собирались, а потом перестали.

Было замечено, что при запуске батника из командной строки, вывод данных занимал 3-5 секунд. В Zabbix по-умолчанию стоит параметр, по которому агент ожидает ответа от скрипта 3 секунды и на сервере есть подобный параметр, по которому сервер ждет ответа от агента 3 секунды. Если за это время данные не поступают, то Item переходит в статус Not Supported и данные с него не агрегируются.

Чтобы избавиться от данной проблемы, требуется увеличить таймаут до 30-ти секунд. Изменяем параметр в конфиг-файле на клиентах и на сервере. Он одинаков в обоих случаях:

Timeout=30

На сервере файл конфигурации по умолчанию лежит в /etc/zabbix/zabbix_server.conf

В Windows \zabbix\conf\zabbix_agentd.win.conf

После изменения параметров не забываем перезагрузить сервер:

systemctl restart zabbix-server

и агент в службах windows.

При желании можете настроить триггеры и графики и оповещения. На этом настройка мониторинга температуры закончена.

Проверьте также

Установка Zabbix 4.x на Ubuntu Server18.04

Zabbix — это бесплатное программное обеспечение с открытым исходным кодом для мониторинга ЛВС, которое используется …

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *