Zabbix windows cpu temperature

Monitoring CPU temperature of Windows hosts with Zabbix 3.4

This tutorial was based on Myopsblog that is a translate of original post on Habr.

This tutorial won’t help you installing and configuring Zabbix Agent on Windows, this needs to be done in advance.

Creating Item in Zabbix

First you need to create the temperature item in Zabbix, it can be an item directly on host or on template.

Creating item in Zabbix

Placing files

Download the OpenHardwareMonitor folder and place on C:
Add the last line of zabbix_agentd.conf to your zabbix agent config file:

UserParameter=Temperature.CPU, type C:\OpenHardwareMonitor\temperature.txt

Starting TempMonitoring.bat

The best option is to run this script as Startup program.
You can start manually for testing.

Obtaining data

After you run the TempMonitoring.bat script, just wait some minutes and then your item in Zabbix will gather data:

Graph showing CPU Temperature

Why this works?

TempMonitoring.bat will call OpenHardwareMonitorReport.exe, apply some filters, gets the average CPU temperature and save to temperature.txt file, sleeps one minute and then repeat infinitely. Zabbix Agent will request Temperature.CPU item, which will simple read the file and return to Zabbix Server.

Changing parameters

You can change the sleep time in seconds of TempMonitoring.bat for your need, just change 60 to your desired value.

You can modify the path as well, just change all six occurrences of path at TempMonitoring.bat and the path of UserParameter at your zabbix agent config file.

Время на прочтение4 мин

Количество просмотров133K

Немного о себе и о рабочей среде

Работаю инженером в компании из двух человек, обслуживаем десяток муниципальных и коммерческих предприятий с парком компьютеров до 100 штук из них 99% windows машин. Занимаемся всем от прокладки сети до настройки информационных систем. Работы много и иногда очень хочется сделать свою жизнь чуточку проще и вот, в очередной такой момент, я столкнулся с системой мониторинга zabbix.

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

Процесс поиска в интернете поставил меня перед фактом, что вытащить температуры железа без сторонних средств нельзя. При поиске этих самых средств, я столкнулся с популярной утилитой SpeedFan, которая умеет собирать данные о температуре устройств, скорости вентиляторов, напряжений. Но получить от неё готовые к обработке данные без установки еще одной утилиты нет возможности. Плюс ко всему они не open source и требует активации компонента SNMP протокола. Вывод: попробовать на windows сервере без IMPI можно, но как вариант массового распространения в сети – не годен. Дальнейший поиск навел на программы hwmonitor и aida64 — монстры, крупногабаритные и платные.

OpenHardwareMonitor

Уже почти отчаявшись, зацепился за короткое сообщение на англоязычном форуме zabbix. Рекомендовали небольшую open source утилиту OpenHardwareMonitor — она имеет графический интерфейс и умеет считывать температуру устройств с датчиков. И самое главное её автор, по просьбе трудящихся написал консольную версию(последняя версия 28.10.2012), выводящую информацию в готовой для обработки форме.

Версия с GUI:

Версия с GUI

Консольная версия:

Консольная версия

Консольная версия состоит из двух файлов, exe исполняемого файла и dll библиотеки.

  • OpenHardwareMonitorReport.exe
  • OpenHardwareMonitorLib.dll

Где брать данные мы поняли, теперь нужно наладить поставки значений показателей Zabbix серверу.

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

Для начала на сервер для узла сети добавим новый элемент данных:

Новый элемент данных

Назовем его: CPU Temperature. (Температура процессора)

Тип: Zabbix агент
Ключ: Temperature.CPU[0]. (Название не принципиально, главное чтобы с конфигом агента совпадал).
Интерфейс узла сети: ip\dns. (Узел, который будем мониторить).
Тип информации: Числовой (целое положительное)
Тип данных: Десятичный

Интервал обновлений (в сек): 3600. (На скриншоте стоит 10 сек, для временной проверки).

На сервере закончили, переходим к конфигурации клиента.

Настройка клиента

Нестандартные данные мы будем отправлять через Zabbix agent в конфиге(zabbix_agentd.conf) которого предусмотрены так называемые пользовательские параметры – UserParameters вида:

UserParameter=ключ[*],команда

Команда, через которую мы получим значение, обрабатывается на стороне клиента. Zabbix сервер будет получать ключ с присвоенным ему значением. В статье имеется в виду, что агент у вас уже установлен в виде службы и дружит с сервером.

В конец конфиг файла агента добавляем:

UserParameter=Temperature.CPU[*], C:\OpenHardwareMonitor\CPUTemperature.bat

CPUTemperature.bat — написанный мной batch файл который вытаскивает из OpenHardwareMonitor, среднюю температуру по процессору. В программе эта строка называется CPU Package.

В C:\OpenHardwareMonitor лежат 3 файла:

  • OpenHardwareMonitorReport.exe
  • OpenHardwareMonitorLib.dll
  • CPUTemperature.bat

Содержимое CPUTemperature.bat

Здесь мой старый код

Инвалид на костылях.

@echo off
del /s C:\OpenHardwareMonitor\*.txt >nul 2>null
call start /B /wait C:\OpenHardwareMonitor\OpenHardwareMonitorReport.exe >> C:\OpenHardwareMonitor\OpenHardwareMonitorReport.txt
find "CPU Package    :" C:\OpenHardwareMonitor\OpenHardwareMonitorReport.txt | find "temperature" >>C:\OpenHardwareMonitor\Result.txt
for /f "tokens=7 delims= " %%i in (C:\OpenHardwareMonitor\Result.txt) do echo %%i >> C:\OpenHardwareMonitor\temp.txt
TYPE C:\OpenHardwareMonitor\temp.txt

Взываю к habra-сообществу о помощи в преобразовании этого ужаса в нормальный программный код без костылей из текстовых файлов.
Тем не менее, со своей задачей скрипт справляется.

Обновлено: Новый код от уважаемого cawaleb

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

Для процессоров intel так же справедлив вариант с find вместо findstr и регулярным выражением:

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

Скрипт возвращает значение в виде десятичного числа.

После этого изменения конфиг файла и размещения всех файлов и скриптов, перезагружаем службу zabbix agent.

Начинаем получать значения на сервер:

График

Заключение

Решена задача по извлечения температуры CPU. По той же схеме можно получить температуру GPU. Но по-прежнему остро стоят вопросы определения скорости работы вентиляторов, напряжения на бп, а так же вопрос есть ли способ проверки состояния северного и южного мостов.

Обновление: Добавлен код для CPUTemperature.bat предложенный уважаемым Cawaleb. Не забудьте поблагодарить его, за то, что отозвался помочь!

Прочитано: 5 649

Всегда хотел знать об обслуживаемой системе чуточку больше – это как хобби которое нравится, стараешься узнать максимум всей информации. А в моем случае хобби совпадает с работой и я собственно рад этому. Цель данной заметки практически воспроизвести все действия которые нужно сделать чтобы снимать показатель температуры процессора, но если Вам не известно, то штатных средств для этой простой задачи в системе Windows 7 к сожалению нет. Что же мне даст в конечном итоге данный съем показателей температуры, а вот что, если температуры держится всегда на достаточно высоком уровне, то возможно не лишним будет произвести чистку системного блога, от пыли, заменить термопасту, сделать тщательный осмотр системного блога. И вот я перехожу к самому главному, раз нет встроенных средств, то буду использовать сторонние, а именно консольную утилиту для решения данной задачи – OpenHardwareMonitor,  состоит она из двух файлов, exe-исполняемого файла и dll-библиотеки.

  • OpenHardwareMonitorReport.exe
  • OpenHardwareMonitorLib.dll

Настраиваю сервер по мониторингу Zabbix если не настроен по своей заметке:

Первым делом ставлю агент Zabbix по своей заметке:

Где брать данные мы поняли, теперь нужно наладить поставки значений показателей Zabbix серверу.

Для этих целей создам новый Template и в нем создам новый элемент данных (Item), захожу на Zabbix сервер:

http://IP&DNS – Configuration – Templates – Create template

Template Name: Template Hardware

Groups: OFFICE (это мои системы в обслуживаемой сети)

Save

Перехожу в созданный Template и в нем создаю приложение и элемент данных:

Configuration – Templates – Template Hardware – Applications – Create Applications

Name: CPU

Configuration – Templates – Template Hardware – Items – Create Item

Привожу к виду:

Name: CPU Template

Type: Zabbix agent

Key: Temperature.CPU[0]

Type of information: Numeric (unsigned)

Data type: Decimal

History storage period (in days): 90

Trend storage period (in days): 365

Application: CPU

Enabled: Yes

Save

Теперь нужно связать данный Template с хостом рабочей станции под управлением Windows 7:

Http://IP&DNS – Configuration – Hosts – выбираю хост (Name = aollo) – вкладка Templatesselect (Group: Office, Template Hardware), нажимаю Select – после Add – после Save (для сохранения изменений)

Настройки серверного описания завершены, теперь перейдем собственно к клиенту, потребуется в конфигурационный файл Zabbix агента (zabbix_agentd.win.conf)  на клиентской станции под управлением Windows 7 добавить пользовательский параметр: – UserParameters следующего вида:

Синтаксис: UserParameter=ключ[*],команда

Как этот синтаксис работает:

Команда, через которую мы получим значение, обрабатывается на стороне клиента. Zabbix сервер будет получать ключ с присвоенным ему значением. В статье имеется в виду, что агент у вас уже установлен в виде службы и дружит с сервером.
Открываем текстовым редактором Notepad++ конфигурационный файл (zabbix_agentd.win.conf) и добавляем следующую строчку:

UserParameter=Temperature.CPU[*],c:\script\temperature.bat

Теперь пояснения:

temperature.bat – это скрипт который задействует консольную утилиту OpenHardwareMonitorReport и некоторые дополнения по обработке получаемых результатов в системе Windows 7 текущей станции.

Для всех дополнений, снимаемых с рабочей станции я в системе создал каталог: c:\script и в него поместил следующие файлы:

  • OpenHardwareMonitorReport.exe
  • OpenHardwareMonitorLib.dll
  • temperature.bat

Теперь продемонстрирую содержимое batфайла для извлечения значения температуры из системы:

@echo off

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

echo %temper0%

Скрипт возвращает значение в виде десятичного числа.

Можно также проверить, что параметр по ключу успешно извлекается:

c:\Program Files (x86)\zabbix>zabbix_agentd.exe --config zabbix_agentd.win.conf

--print | findstr Temperature

Temperature.CPU                               [t|52]

Видите, значения извлекаются, все работает.

После этого изменения конфиг файла и размещения всех файлов и скриптов, перезагружаем службу zabbix agent.

c:\Program Files (x86)\zabbix>net stop “Zabbix Agent” && net start “Zabbix Agent”

Служба “Zabbix Agent” останавливается.

Служба “Zabbix Agent” успешно остановлена.

Служба “Zabbix Agent” успешно запущена.

Теперь нужно связать хост

Начинаем получать значения на сервер:

http://IP&DNS – Monitoring – Latest data – Group (OFFICE):Host(aollo) – опускаемся в самый низ и видим новую категорию: -other развернув которую можно наблюдать извлекаемые значения:

CPU Temperature Jan 22nd, 2015 06:14:56 AM    52      +2 Graph

Нажимаю Graph и получаю уже сейчас собранную статистику:

Пример визуализации статистики по температуре процессора на системе

Работает, но это для одного CPU[0], а если из два CPU[1], то нужно:

Изменяем на клиенте конфигурационный файл:

LogFile=c:\zabbix_agentd.log

LogFileSize=10

Server=192.168.0.197

ListenPort=10050

Hostname=aollo

UserParameter=windows.services,"%ProgramFiles%\zabbix\services.exe"

UserParameter=Temperature.CPU0[*],c:\script\temperature0.bat

UserParameter=Temperature.CPU1[*],c:\script\temperature1.bat

c:\Program Files (x86)\zabbix>zabbix_agentd.exe –config zabbix_agentd.win.conf

–print | findstr Temperature

Temperature.CPU0                              [t|51]

Temperature.CPU1                              [t|60]

И также изменяем/дополняем элемент данных на сервере:

Теперь последние снимаемые данные с рабочей станции график уже пишутся и строятся отдельно.

Отлично последние данные по CPU для двух процессоров начали собираться

Работает съем  данных, проверил, что данные идут с клиентских рабочих станций различных материнок и в довесок с моего ноутбука Lenovo G700, а вот с серверной материнки (ProLiant DL180G6) данные с помощью данной утилиты вообще не снимаются, так что в отсутствие стандартизированных компонентов в малой компании подбор различных параметров которые нужно мониторить работа системного администратора превращается в отличное подобие квеста. Но я не отказываюсь от такого, а собираю статистику. Посмотрим, что еще можно с помощью данной консольной утилиты извлечь из системы чтобы мониторить:

c:\script>OpenHardwareMonitorReport.exe | findstr temperature

|  +- CPU Core #1    :       53       52       53 (/intelcpu/0/temperature/0)

|  +- CPU Core #2    :       59       59       59 (/intelcpu/0/temperature/1)

|  +- GPU Core       :       38       38       38 (/nvidiagpu/0/temperature/0)

Вот еще можно GPU мониторить, т.е. температуру графического процессора.

Возможно, если найти более функциональную утилиту консольного вида то съем различных параметров можно расширить, но не стоит стараться охватить все, следует остановиться, только на самом нужном и значимом в практическом применении, не тратьте время попусту. А вот и график за период в шесть дней, как меняется температура на моем рабочем ноутбуке с течением выполняемых задач (наверное, как-то так), и конечно же удовольствие от проделанной и визуализированной работы.

Пример собранной статистики по температуре процессора на моей рабочей системе

А так заметка полностью работоспособна, теперь буду прощаться. До встречи, с уважением – автор блога ekzorchik.

07.11.2018 — Мониторинг температуры процессора c оповещением в Zabbix

Продолжаем цикл статей по мониторингу узлов ИТ-инфраструктур клиентов на базе Zabbix, который мы активно используем в нашей повседневной работе по абонентскому обслуживанию серверов.

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

Настройка на стороне клиента

Настраивать все это будем на Windows Server 2008 R2 c процессором Intel Xeon E5-2609. Программа с которой будем забирать данные температуры называется «OpenHardwareMonitor» то есть ее консольная версия» OpenHardwareMonitorReport». Также настроим скрипт на PowerShell который будет выполнятся zabbix агентом и полученные данные передавать на сервер.

И так начнем, программу и скрипт можете скачать тут. Скаченную папку нужно положить по пути C:\Tools\Zabbix_Agent\ как показано на скриншоте ниже.

Прежде чем продолжать настройку дальше, нужно убедиться, что данные с OpenHardwareMonitorReport.exe можно получить. Для этого нужно в консоли выполнить следующую команду «c:\> C:\Tools\Zabbix_Agent\OpenHardwareMonitor\OpenHardwareMonitorReport.exe > c:\Tools\Zabbix_Agent\OpenHardwareMonitor\test.txt» После это откройте созданный файл и проверти что в нем есть строки показывающие температуру.

Отлично, данные есть можно продолжать. Следующий этап — это проверка работы скрипта на PowerShell. Он лежит в той же папки и называется cputemp.ps1. Для его выполнения откройте PS и выполните его. «PS C:\> C:\Tools\Zabbix_Agent\OpenHardwareMonitor\cputemp.ps1 0» Ноль в конце команды обозначает порядковый номер процессора, у меня их два так что первый будет «0» второй «1».

Стоит сразу сказать, если у вас CPU не Intel в скрипте нужно будет заменить название, также если при выполнении у вас ничего не выходит то измените значение «$words[15]» на 16 или 14, это номер символа от начала строки который нужно выводить.

Настройка Zabbix агента

Теперь откроем файл конфигурации агента и внесем туда следующие изменения.

Ниже приведу ряд обязательных параметров, которые должны присутствовать:

  1. ServerActive=192.168.155.1 – пишем адрес сервера zabbix
  2. UserParameter=TemperatureCPU[*], powershell C:\Tools\Zabbix_Agent\OpenHardwareMonitor\cputemp.ps1 $1 – наш параметр «TemperatureCPU[*] »который будем задавать на сервере для получения данных
  3. Timeout=15 – время ожидания, так как скрипт выполняется секунд 5 то серверу надо сказать чтобы он ждал 15 секунд получения данных. Можно и меньше указать, но лучше, как я взять с запасом.

После всех внесенных изменений перезагружаем агента и переходим к настройке сервера.

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

  • Имя – понятное вам название
  • Тип – zabbix агент активный
  • Ключ – как раз то название «UserParameter=TemperatureCPU[*]» которое мы указывали в конфигурации агента, в скобках пишем порядковый номер процессора.
  • Единица измерения — ℃ (просто для красоты)

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

Отлично, все работает! Заметьте у меня два процессора, и я добавил два элемента данных, вы же добавляете столько сколько их у вас.

На сегодня все, если будут вопросы пишите, наши инженеры с радостью решат ваши задачи! 

Будем использовать активного 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.

Текст скрипта:

# -*- coding: utf-8 -*-

import os
import sys
import ctypes

#
# Функция проверки наличия прав администратора
# Вход: нет
# Выход: true - есть права администратора,
#        false - нет прав администратора
#
def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

################################################################################
#   Начало программы
################################################################################
def main(argv=None):

   # Проверяем наличие прав админа.
   if not is_admin ():
      sys.exit ('Not enough permissions to run the script !!!')
   
   # Устанавливаем кодировку по умолчанию.
   reload(sys)
   sys.setdefaultencoding('utf8')
   
   # Устанавливаем имена файлов, где будет храниться температура процесcоров
   cpu0 = 'C:/zabbix/scripts/OHMR/cpu0.txt'
   cpu1 = 'C:/zabbix/scripts/OHMR/cpu1.txt'
   
   # Получаем результат работы OHMR
   OHMR = []
   OHMR = os.popen("C:\zabbix\scripts\OHMR\OpenHardwareMonitorReport.exe").read().splitlines()
   
   # Высчитываем температуру 0-го и, возможно, 1-го процесора
   
   n0 = 0
   sum0 = 0
   
   n1 = 0
   sum1 = 0
   
   for i in OHMR:
      if (':' in i) and ('(/intelcpu/0/temperature/' in i):
         t = i.split()
         n0 = n0 + 1
         sum0 = sum0 + int(t[8])
   
      if (':' in i) and ('(/intelcpu/1/temperature/' in i):
         t = i.split()
         n1 = n1 + 1
         sum1 = sum1 + int(t[8])
   
   if n0>0:
      sum0 = sum0 / n0
   
   if n1>0:
      sum1 = sum1 / n1
   
   # Сохраняем температуру 0-го процессора в файл
   f = open(cpu0,'w')
   try:
      f.write(str(sum0))
   except Exception:
      pass
   finally:
      f.close()
   
   # Сохраняем температуру 1-го процессора в файл
   f = open(cpu1,'w')
   try:
      f.write(str(sum1))
   except Exception:
      pass
   finally:
      f.close()

if __name__ == "__main__":
    sys.exit(main())

2. Устанавливаем скрипт в системе.

Скрипт лучше запускать каждые 5-10 минут. Я обычно это делаю каждые 10 минут – не слишком часто, но и не слишком редко.

Запланировать выполнение скрипта можно при помощи планировщика Windows. Задание планировщика можно создать вручную, а можно и при помощи bat-файла.

Я обычно это делаю при помощи “батника”, имя своему батнику я дал INSTALL_OHMR_py.bat .

Текст скрипта:

@echo off

Rem Предполагаем, что на Windows XP скрипт запускается администратором.
Rem Для более старших систем это неверно.

rem Получаем версию ОС
ver | find "5.1."

rem Windows XP ?
If %errorlevel%==0  (
	rem Пропускаем проверку админских прав
	GOTO SKIPADMIN
 )
 
SET HasAdminRights=0

FOR /F %%i IN ('WHOAMI /PRIV /NH') DO (
	IF "%%i"=="SeTakeOwnershipPrivilege" SET HasAdminRights=1
)

IF NOT %HasAdminRights%==1 (
	ECHO .
	ECHO Not enough permissions to run the script !!!
	ECHO .
	GOTO END
)

:SKIPADMIN

rem Получаем версию ОС
rem Windows XP ?

ver | find "5.1."

If %errorlevel%==0  (
rem Windows XP
	SCHTASKS /Create /RU "NT AUTHORITY\SYSTEM" /SC HOURLY /ST 00:00:00 /TN "OHMR0" /TR "python \"C:\zabbix\scripts\OHMR\OHMR.py\""
	SCHTASKS /Create /RU "NT AUTHORITY\SYSTEM" /SC HOURLY /ST 00:10:00 /TN "OHMR1" /TR "python \"C:\zabbix\scripts\OHMR\OHMR.py\""
	SCHTASKS /Create /RU "NT AUTHORITY\SYSTEM" /SC HOURLY /ST 00:20:00 /TN "OHMR2" /TR "python \"C:\zabbix\scripts\OHMR\OHMR.py\""
	SCHTASKS /Create /RU "NT AUTHORITY\SYSTEM" /SC HOURLY /ST 00:30:00 /TN "OHMR3" /TR "python \"C:\zabbix\scripts\OHMR\OHMR.py\""
	SCHTASKS /Create /RU "NT AUTHORITY\SYSTEM" /SC HOURLY /ST 00:40:00 /TN "OHMR4" /TR "python \"C:\zabbix\scripts\OHMR\OHMR.py\""
	SCHTASKS /Create /RU "NT AUTHORITY\SYSTEM" /SC HOURLY /ST 00:50:00 /TN "OHMR5" /TR "python \"C:\zabbix\scripts\OHMR\OHMR.py\""
 ) else (
rem НЕ Windows XP
	SCHTASKS /Create /RU "NT AUTHORITY\SYSTEM" /SC DAILY /ST 00:00 /RI 10 /DU 24:00 /TN "OHMR" /TR "python \"C:\zabbix\scripts\OHMR\OHMR.py\"" /RL HIGHEST /F
 )

del /f /q C:\zabbix\scripts\OHMR\cpu0.txt
del /f /q C:\zabbix\scripts\OHMR\cpu1.txt

python C:\zabbix\scripts\OHMR\OHMR.py

:END

EXIT /B

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. Сбор данных.

Осталось назначить созданный шаблон соответствующему узлу сети и ждать начала поступления данных.




Всё!


Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Обновление windows server через powershell
  • Kompas v14 windows 10
  • Проверка целостности windows 10 remontka
  • Folder size for windows rus
  • Как установить windows на компьютер без дисковода