Будем использовать активного Zabbix-агента для слежения за температурой процессора.
Уверен, что важность мониторинга температуры процессора объяснять не нужно.
Замечание 1.
Способ установки Python 2.7 описан тут: https://www.mihanik.net/tihaja-ustanovka-python-2-7/
Замечание 2.
Способ становки Zabbix-агента (клиента) описан тут: https://www.mihanik.net/ustanovka-zabbix-klienta/
1. Собираем данные по температуре при помощи скрипта.
Всё, что касается измерения температуры процессора (процессоров) будет располагаться в каталоге C:\Zabbix\scripts\OHMR
Скрипт написан на Python 2.7, он собирает данные по температуре процессора (процессоров) и формирует 2 файла:
- C:\zabbix\scripts\OHMR\cpu0.txt — температура первого процессора
- C:\zabbix\scripts\OHMR\cpu1.txt — температура второго процессора.
Замечание 1.
Если второго процессора в компьютере нет, то в файле cpu1.txt будет всегда нулевая температура.
Замечание 2.
Для получения температуры процессора будет использоваться OpenHardwareMonitor (консольная его версия). Страницу проекта можно найти тут: https://github.com/openhardwaremonitor/openhardwaremonitor . Дело в том, что при помощи WMI действительную температуру процессора не узнать. Чтобы узнать текущую температуру нужно прочитать данные из регистров процессора, чтобы прочитать данные из регистров процессора, нужно работать из нулевого кольца защиты, а чтобы попасть в нулевое кольцо, нужно писать драйвер… Вот OpenHardwareMonitor и делает за нас всю эту черновую работу. Нам остаётся только проанализировать то, что он нам выдаст.
Сам скрипт сохранён под именем C:\zabbix\scripts\OHMR\OHMR.py.
2. Устанавливаем скрипт в системе.
Скрипт лучше запускать каждые 5-10 минут. Я обычно это делаю каждые 10 минут – не слишком часто, но и не слишком редко.
Запланировать выполнение скрипта можно при помощи планировщика Windows. Задание планировщика можно создать вручную, а можно и при помощи bat-файла.
Я обычно это делаю при помощи “батника”, имя своему батнику я дал INSTALL_OHMR_py.bat .
3. Формируем шаблон в Zabbix.
В Zabbix при этом добавляем несложный шаблон.
Сначала приведу описание шаблона в картинках.
Создаём шаблон с именем : Active Computer — Python — CPU Temperature…
Группа элементов данных: CPU
Элементы данных:
- CPU0 Temperature — vfs.file.contents[C:\zabbix\scripts\OHMR\cpu0.txt]
- CPU1 Temperature — vfs.file.contents[C:\zabbix\scripts\OHMR\cpu1.txt]
Триггеры:
- Информация {HOST.NAME}. Температура процессора выше 50 градусов {Active Computer — Python — CPU Temperature:vfs.file.contents[C:\zabbix\scripts\OHMR\cpu1.txt].last()}>=50 and {Active Computer — Python — CPU Temperature:vfs.file.contents[C:\zabbix\scripts\OHMR\cpu1.txt].last()}<60
- Информация {HOST.NAME}. Температура процессора выше 50 градусов {Active Computer — Python — CPU Temperature:vfs.file.contents[C:\zabbix\scripts\OHMR\cpu0.txt].last()}>=50 and {Active Computer — Python — CPU Temperature:vfs.file.contents[C:\zabbix\scripts\OHMR\cpu0.txt].last()}<60
- Предупреждение {HOST.NAME}. Температура процессора выше 60 градусов {Active Computer — Python — CPU Temperature:vfs.file.contents[C:\zabbix\scripts\OHMR\cpu1.txt].last()}>=60 and {Active Computer — Python — CPU Temperature:vfs.file.contents[C:\zabbix\scripts\OHMR\cpu1.txt].last()}<70
- Предупреждение {HOST.NAME}. Температура процессора выше 60 градусов {Active Computer — Python — CPU Temperature:vfs.file.contents[C:\zabbix\scripts\OHMR\cpu0.txt].last()}>=60 and {Active Computer — Python — CPU Temperature:vfs.file.contents[C:\zabbix\scripts\OHMR\cpu0.txt].last()}<70
- Средняя {HOST.NAME}. Температура процессора выше 70 градусов {Active Computer — Python — CPU Temperature:vfs.file.contents[C:\zabbix\scripts\OHMR\cpu1.txt].last()}>=70 and {Active Computer — Python — CPU Temperature:vfs.file.contents[C:\zabbix\scripts\OHMR\cpu1.txt].last()}<80
- Средняя {HOST.NAME}. Температура процессора выше 70 градусов {Active Computer — Python — CPU Temperature:vfs.file.contents[C:\zabbix\scripts\OHMR\cpu0.txt].last()}>=70 and {Active Computer — Python — CPU Temperature:vfs.file.contents[C:\zabbix\scripts\OHMR\cpu0.txt].last()}<80
- Высокая {HOST.NAME}. Температура процессора выше 80 градусов {Active Computer — Python — CPU Temperature:vfs.file.contents[C:\zabbix\scripts\OHMR\cpu1.txt].last()}>=80
- Высокая {HOST.NAME}. Температура процессора выше 80 градусов {Active Computer — Python — CPU Temperature:vfs.file.contents[C:\zabbix\scripts\OHMR\cpu0.txt].last()}>=80
И для большей наглядности добавим графики…
А вот и готовый для импорта заархивированный файл с описанным выше шаблоном: Active Computer — Python — CPU Temperature.xml
Описанные ранее скрипты можно найти в моём репозитории: https://github.com/mihanik2000/ZabbixActiveAgent/tree/master/zabbix/scripts/OHMR
4. Сбор данных.
Осталось назначить созданный шаблон соответствующему узлу сети и ждать начала поступления данных.
Всё!