Home » Linux » Zabbix настройка мониторинга температуры

Zabbix настройка мониторинга температуры

Появилась у меня потребность мониторить температуру windows серверов в Zabbix. Из систем мониторинга он мне больше всего нравится, поэтому смотрел в его сторону. Решение задачи оказалось неожиданно простым, о чем я и хочу вам рассказать.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Введение

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

  1. Установка CentOS 8.
  2. Настройка CentOS 8.
  3. Установка и настройка zabbix сервера.

То же самое на Debian 10, если предпочитаете его:

  1. Установка Debian 10.
  2. Базовая настройка Debian.
  3. Установка и настройка zabbix на debian.

Текущая статья писалась для версии 2.4, все скриншоты приведены из нее. В настоящее время уже вышли более новые версии, но вся нижеизложенная инструкция не потеряла актуальности. Все будет работать и в новой версии.

Подготовка к мониторингу в Zabbix

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

Существует бесплатная утилита Open Hardware Monitor, которая может показывать температуру некоторых датчиков сервера. Вообще говоря, она много чего может показывать (напряжение, скорость вентиляторов, загрузку процессора), но в данном случае нас интересует только температура. У этой утилиты есть версия, работающая в командной строке. Из командной строки показания датчиков можно записывать в файл. Этот файл можно анализировать и забирать из него необходимую для мониторинга информацию. Дальше эта информация передается в сервер Zabbix с помощью опции UserParameter. Все достаточно просто и в то же время эффективно.

Приступим к реализации. Скачиваем GUI версию утилиты по ссылке, приведенной ранее и консольную версию OpenHardwareMonitorReport. Запускаем GUI на сервере и смотрим, какие датчики нам доступны для мониторинга.

OpenHardwareMonitor для мониторинга в Zabbix

Программа увидела несколько датчиков. С процессором все понятно, а вот три других датчика не ясно, чью температуру показывают. Я хотел мониторить температуру процессора и материнской платы. Узнать, какая температура относится к материнской плате можно несколькими способами. Конкретно в данной ситуации я просто запустил портированную версию AIDA64 и посмотрел, какие показания у датчика материнской платы:

AIDA64 мониторинг температуры

Оказалось - 45 градусов. Я запомнил, что датчик Temperature #3 отображает температуру материнской платы.

Можно было пойти другим путем, зайти в IPMI панель, если она есть, и посмотреть там. Я работал с серверами SuperMicro, там она есть. Я на всякий случай зашел и проверил:

IPMI сенсоры мониторинга

Почему-то в этой панели не оказалось информации с датчика температуры процессора. Но нам это не важно. Самое главное, что мы узнали параметры, за которыми будем следить - это CPU Packege и Temperature #3. Теперь запускаем консольную версию и смотрим вывод информации. Я для удобства положил OpenHardwareMonitorReport.exe в папку с основной программой и все это хозяйство скопировал в корень диска C:

OpenHardwareMonitorReport экспорт данных в файл

Открываем файл 1.txt. Ищем там строки

|  +- CPU Package    :       52       51       52 (/intelcpu/0/temperature/4)
|  |  +- Temperature #3 :       45       45       45 (/lpc/nct6776f/temperature/3)

Нас интересует выделенный текст. По нему мы будем вычленять температуру для мониторинга и передавать ее на Zabbix сервер. Создаем в этой же папке 2 bat файла следующего содержания:

CPUTemperature.bat

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

MotherTemperature.bat

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

Запускаем эти батники в командной строке и проверяем вывод. Там должны быть только цифры температуры:

cmd вывод температур с датчиков

Отлично, на выходе готовые цифры, которые мы будем передавать в Zabbix. Займемся его настройкой.

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

Предполагается, что у вас уже настроен сервер мониторинга Zabbix и подключены клиенты, которые ему передают информацию. В данном материале я не буду касаться непосредственно установки и настройки сервера Zabbix, это будет отдельный материал. Сейчас же мы берем готовый файл конфигурации агента zabbix_agentd.win.conf и добавляем в самый конец файла следующие строки:

UserParameter=Temperature.CPU, C:\OpenHardwareMonitor\CPUTemperature.bat
UserParameter=Temperature.Mother, C:\OpenHardwareMonitor\MotherTemperature.bat

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

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

Теперь идем на сервер. У меня Zabbix установлен на сервере CentOS, хотя это не принципиально. Добавляем новый Item. Пойти можно двумя путями:

  • Создать template, в него добавить все items, создать триггеры, графики и назначить этот шаблон нужным серверам.
  • К каждому серверу отдельно добавлять только необходимые итемы и вручную добавлять триггеры и графики.

Очевидно, что первым путем идти удобнее и разумнее. Я так и поступил, но в процессе реализации столкнулся с проблемой. Не все сервера имеют одинаковый набор датчиков. Где-то я не смог снять температуру с материнской платы, где-то вместо одного процессора, стояло два и хотелось снимать температуру с обоих камней. Как будет в вашем случае - не знаю. Если все серверы однотипные, то создавайте template, если все разные, то вручную добавляйте каждый итем на сервер. Я в итоге сделал и шаблон для одинотипных серверов, и вручную добавлял итемы туда, где имелись отличия от шаблона.

Итак, сначала создадим шаблон. Идем в Configurations - Templates - Create Template. Шаблон я назвал Temperature Windows. Добавил в него Application - Temperature, затем Item CPU Temperatue. Заполняем поля итема как у меня на картинке:

Zabbix создание итема

Параметр Temperature.CPU тот же самый, что и в файле конфигурации агента.

По аналогии создаем итем Mother Temperatue:

Zabbix создание item

Сохраняем шаблон. По желанию создаем для него триггеры и графики. Можно и без них. Добавляем шаблон к серверу, который хотим мониторить. Ждем некоторое время и идем проверять входящие данные. Открываем Monitoring - Latest data:

Zabbix latest data

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

Zabbix график температуры

Теперь добавим в Zabbix еще один сервер для мониторинга, который будет отличаться по конфигурации от предыдущего. На его примере я покажу, как менять настройки клиента и сервера. С этого сервера я не могу снять данные с датчика температуры материнской платы, по какой причине - не знаю, но не AIDA64 ни OpenHardwareMonitor мне температуру не показывают. Ее можно взять по SNTP с этого сервера, но это отдельная тема. В этом сервере 2 процессора и я хочу мониторить температуру обоих.

Запускаем GUI интерфейс и смотрим, какие датчики мы сможем мониторить:

Open Hardware Monitor

Нас будет интересовать температура обоих ядер процессора. Теперь запускаем OpenHardwareMonitorReport.exe с выводом информации в текстовый файл. Смотрим, как выглядят строки с интересующей нас информацией:

|  +- CPU Package    :       59       59       59 (/intelcpu/0/temperature/6)
|  +- CPU Package    :       53       53       54 (/intelcpu/1/temperature/6)

Создаем два bat файла следующего содержания:

CPU1Temperature.bat

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

CPU2Temperature.bat

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

Редактируем конфигурационный файл zabbix_agentd.win.conf агента Zabbix на клиенте. Добавляем в конец две строки:

UserParameter=Temperature.CPU1, C:\OpenHardwareMonitor\CPU1Temperature.bat
UserParameter=Temperature.CPU2, C:\OpenHardwareMonitor\CPU2Temperature.bat

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

Дальше идем на сервер Zabbix и по аналогии с предыдущим сервером создаем там Итемы мониторинга. Причем итемы создаем не в шаблоне, а в конкретном сервере, который будем мониторить. Параметр key в этих итемах будет соответственно Temperature.CPU1 и Temperature.CPU2 Ждем некоторое время и проверяем результат.

item became not supported

Во время отладки работ я столкнулся с проблемами. Периодически Item отваливались и получали статус: Not Supported. При этом в логах сервера были следующие записи:

27614:20150702:065936.698 item "videoserver:Temperature.CPU" became not supported: Timeout while executing a shell script.
27625:20150702:070938.720 item "videoserver:Temperature.CPU" became supported

То есть данные то собирались, то переставали собираться. Иногда, чтобы данные снова пошли, приходилось удалять итем и создавать его заново. Некоторое время я повозился, пока не понял, в чем дело.

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

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

Timeout=15

Потом перезапускаем сервер и агентов и ждем результатов. Больше ошибок быть не должно.

На этом, собственно настройка мониторинга температуры окончена. Можно дальше все оформить как полагается: настроить тригеры, оповещения, графики красивые нарисовать. Кому что нужно. Я себе вывел вот такую картинку для наглядности:

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

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Дополнительные материалы по Zabbix

Углубленный онлайн-курс по MikroTik.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Рекомендую полезные материалы по Zabbix:
Настройки системы
  • Установка 4.0
  • Обновление 3.0 -> 3.2
  • Обновление 3.4 -> 4.0
  • Установка Zabbix Proxy
  • Работа на NGINX
Видео и подробное описание установки и настройки Zabbix 4.0, а также установка агентов на linux и windows и подключение их к мониторингу.
Подробное описание обновления системы мониторинга zabbix версии 3.4 до новой версии 4.0.
Пошаговая процедура обновления сервера мониторинга zabbix 2.4 до 3.0. Подробное описание каждого шага с пояснениями и рекомендациями.
Подробное описание установки и настройки zabbix proxy для организации распределенной системы мониторинга. Все показано на примерах.
Подробное описание установки системы мониторинга Zabbix на веб сервер на базе nginx + php-fpm.
Мониторинг служб и сервисов
 
  • Температура процессора
  • Nginx и php-fpm
  • Mysql репликация
  • Службы Linux
  • Рейд mdadm
  • Транки Asterisk
  • Synology
Мониторинг температуры процессора с помощью zabbix на Windows сервере с использованием пользовательских скриптов.
Настройка полноценного мониторинга web сервера nginx и php-fpm в zabbix с помощью скриптов и пользовательских параметров.
Мониторинг репликации mysql с помощью Zabbix. Подробный разбор методики и тестирование работы.
Описание настройки мониторинга tcp служб с помощью zabbix и его инструмента простых проверок (simple checks)
Настройка мониторинга рейда mdadm с помощью zabbix. Подробное пояснение принципа работы и пошаговая инструкция.
Подробное описание мониторинга регистраций транков (trunk) в asterisk с помощью сервера мониторинга zabbix.
Подробная инструкция со скриншотами по настройке мониторинга по snmp дискового хранилища synology с помощью сервера мониторинга zabbix.
Мониторинг различных значений
  • Мониторинг сайта
  • Мониторинг бэкапов
  • Размер бэкапа
  • Делегирование домена
  • Значения из текстового файла
  • Мониторинг логов
Настройка мониторинга web сайта в zabbix. Параметры для наблюдения - доступность сайта, время отклика, скорость доступа к сайту.
Один из способов мониторинга бэкапов с помощью zabbix через проверку даты последнего изменения файла из архивной копии с помощью vfs.file.time.
Подробное описание настройки мониторинга размера бэкапов в Zabbix с помощью внешних скриптов.
Пример настройки мониторинга за временем делегирования домена с помощью Zabbix и внешнего скрипта. Все скрипты и готовый шаблон представлены.
Описание мониторинга лог файлов в zabbix на примере анализа лога программы apcupsd. Отправка оповещений по событиям из лога.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

60 комментариев

  1. Как писал уже Алексей 03.12.2019: у вас старая версия программы. Вроде последняя рабочая версия (с выводом в консоль) 0.8.0.5. Лежит тут: https://github.com/jochenwezel/openhardwaremonitor/releases/tag/0.8.0.5
    Там только надо указывать параметр ReportToConsole или ReportToFile.
    Ваша версия старая, на моём не сильно новом проце, она не показывает температуру процессора.

  2. На выходе есть три значение температуры, нигде не могу найти инфу о том почему нужно использовать последнее, что означает первые два значения?

  3. "Ее можно взять по SNTP с этого сервера," - наверное SNMP имелось виду. SNTP время синхронизирует

  4. Алексей

    Желающие пользоваться данным способом, вот ссылка с GitHub: https://github.com/openhardwaremonitor/openhardwaremonitor/pull/1115
    Версия OpenHardwareMonitor 0.8.0.5 (Температуры CPU сканит, Report служба работает и даже настроена для отправки сообщений).
    Запросы через Report делать только при включенном от имени администратора OHM, иначе ругается. Прежде чем слать что-то в Zabbix, проверяйте через вывод в текст, что bat выдает.

    • Алексей

      Добрый день. Подскажите при настройке мониторинга температуры появляется ошибка "Item does not allow parameters".
      в config agentа прописал: UserParameter=Temperature.CPU, C:\OpenHardwareMonitorConsole\CPUTemperature.bat

      на сервере при проверке батника получаю значение температуры.

      • Алексей

        У меня были подобные моменты. Попробуйте обнулить историю итема в хосте, предварительно выключив хост. Затем снова его включите.
        -
        Не уверен, что я прав, но кажется это связано с тем, что на сервер прилетает что-то помимо числового значения и Zabbix ругается на это.

        P.S.: Если что, UserParameter в в конфиге агента и Key в итеме хоста должны полностью совпадать. Бывало такое, что по случайному нажатию лишней клавиши, там лишний символ оставался.

      • Алексей

        Разобрался с отображением графика. на версии Zabbix 4.2.7. получилась сборная солянка OpenHardwareMonitor 0.8.0 Beta, добавил последнюю версию OpenHardwareMonitorReport.exe, температуру процессоров отображает. с температурой материнки еще не совсем ясно. так как на двух серверах материнки вообще не определяются с моделью.

  5. Дмитрий

    Спасибо автору за статью.
    А вот что делать с новыми процессорами, где OpenHardwareMonitor температуру не показывает? Пробовали как то вытащить?

    • Не знаю что делать. Других консольных программ с выводом температуры с датчиков не встречал.

      • Дмитрий

        Печально. Я то же не нашел. А так всё работает славно!!! Хотел на все сервера прикрутить, а то стоят в разных концах предприятия сложно контролировать климат.

  6. Всех приветствую!
    Воспользовался данными статьи, очень полезная инфа, но у меня ничего не получается.
    Сам батник @echo off
    for /F "usebackq tokens=7-10" %%a in (`C:\ohm\OpenHardwareMonitorReport.exe`) do echo %%b %%c %%d| findstr "(/atigpu/2/temperature/0")>nul && set temperature=%%a
    echo %temperature%
    все отрабатывает на ура и показывает нужную мне температуру

    Но с сервера через zabbix_get -s serv -k Temper
    вываливается
    ▒▒▒▒▒ ▒뢮▒▒ ▒▒▒▒▒▒ ▒▒ ▒࠭ (ECHO) ▒⪫▒祭
    Соответственно и на веб морде тоже самое.
    Получается так, что zabbix считывает любое сообщение которое первое выскакивает и выдает его, и как раз почему то появляется сообщение о режиме вывода команды echo, чего собственно и недолжно быть!

    Кто сталкивался с такой особенностью? Может нашли решение проблемы?

    • Добрый

      Тоже столкнулся с такой же проблемой на видеокарте от амд, батник дает температуру, через Zabbix "????? ?뢮?? ?????? ?? ?࠭ (ECHO) ?⪫?祭."
      Кто-нибудь уже решал возможно данную проблему?)
      Zabbix 5.4.4

  7. Добрый день! Столкнулся с такой проблемой старая версия OpenHardwareMonitor не считывает температуру с новых процов. Нашел новую версию 0.8.0.3 альфа.. Теперь температура читается, Но нет файла OpenHardwareMonitorReport.exe пытался подсунуть от старой версии все равно через CMD OpenHardwareMonitorReport.exe не смог считать температуру
    .

  8. Доброго времени суток. Спасибо за статью. Скажите, всё сделал по инструкции. Но в Latest data не появляется параметр Temperature как у вас. В чем может быть проблема? Может тригер для шаблона надо создать? но какой?

  9. Kaspersky Endpoint Security блокирует работу zabbix + openhardwaremonitor. другие метрики снимаются прекрасно, метрика с UserParameter начинаются сниматься при отключении каспера. облазил политику каспера, назначил исключения по программам, по папке где расположен zabbix и ohm, один фик. подскажите кто сталкивался, куда еще можно влезть?

  10. Кирилл

    Добрый день.
    Сделал все по инструкции, проверил несколько раз. У меня заббикс на эти элементы данных выдает "Timeout while executing a shell script.". Проверил на хостах, скрипты выполняются и пишут температуру.

    • Увеличить таймаут пробовали на агентах и сервере? Там отдельный параметр есть по этому поводу.

      • Кирилл

        Увеличил уровень логирования, дабы увидеть, что происходит с отправкой: данные действительно формируются и отправляют каждые 10 минут (с точностью до секунды). Установил интервал обновления на сервере 11 мин, подождал пока отправится несколько раз. И все без изменений, ошибка не исправилась

        • Кирилл

          Так и не понял в чем проблема, но решил попробовать через активную проверку (поменял только настройку на сервере) и все завелось

  11. пока писал вопрос, эта штука сама заработала)))
    чудеса да и только

  12. Доброго времени суток!
    Появилась необходимость мониторинга рабочих хостов на windows, пришлось прибегнуть к данной инструкции. И вот незадача, до этого настроил, аналогично, мониторинг состояния дисков - всё работает на ура. А вот с температурными показателями процесса не выходит. Самое главное ошибок нет никаких. в логе сервера пишет: item "win10_64:Temperature.CPU" became supported
    Но результата ноль.
    Помогите, пожалуйста.

  13. Здравствуйте, не доводилось ли Вам мониторить температуру свичей от производителя ubiquiti? Не могу подобрать необходимый шаблон. На ихнем сайты mib какие-то неполноценные.

  14. Для тех кто столкнулся с ошибкой вида :
    CPUTemperature[0] [m|ZBX_NOTSUPPORTED] [Unsupported item key.]

    --
    Найдите в конфиге агента параметр " UnsafeUserParameters", он обычно закомментен, уберите комент и дайте значение 1 :
    UnsafeUserParameters=1

    Всё потому что символы \ ' " ` * ? [ ] { } ~ $ ! & ; ( ) | # @ не позволены в "UserParameter", а значение "1" снимает это ограничение.

    Я перелопатил туеву хучу туториалов, об этои никто не пишет. Пишу я. Надеюсь поможет кому-то.

    • Спасибо за полезную информацию. Раньше это точно не нужно было, потому что у меня до сих пор работают 2 сервера с этим мониторингом. Я там не трогал этот параметр, он стоит дефолтный.

      • Самрат

        Здравствуйте помогите при создание файла 1 txt выходит ошибка. Может подскажите. Ошибку прилагаю. Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'OpenHardwareMonitorLib, Version=0.5.1.7, Culture=neutral, PublicKeyToken=null' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
        File name: 'OpenHardwareMonitorLib, Version=0.5.1.7, Culture=neutral, PublicKeyToken=null'
        at OpenHardwareMonitorReport.Program.Main(String[] args)

        WRN: Assembly binding logging is turned OFF.
        To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
        Note: There is some performance penalty associated with assembly bind failure logging.
        To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

        Спасибо за ответ.

        • А у вас в принципе консольная утилита OpenHardwareMonitor работает на этой системе? Она очень старая, давно не обновляется. Возможно, она уже просто не поддерживается текущей системой.

    • Дмитрий

      Добрый день, настраивал по инструкции и появилась ошибка
      Temperature.CPU [m|ZBX_NOTSUPPORTED] [Unsupported item key.]
      Раскоментировал UnsafeUserParameters и присвоил значение "1" - не помогло. Может еще идеи какие есть как решить проблему (график не рисуется, но в графике весят значения 37. Запускал стресс тест чтоб проверить изменения но так и остались эти значения).

  15. Не выводится температура при обычном запуске через cmd,только если запустить cmd "от администратора" получаю температуру. Изначально учетка уже имеет права админа,но температуру не получает. Куда копать подскажите?

  16. Только знакомлюсь с linux системами (буквально месяц). Установил ubuntu server 16 версию, поставил zabbix server\client снимаю стандартные метрики с серваков, нагрузка CPU/HDD , пытаюсь настроить снятие температуры как расписано выше, но в результате на графике пусто. В комментах выше увидел увидел проблему как и у меня, батники отрабатывают, а сервер их не считывает(игрался с задержками не помогло), люди прописали через shell и у них заработало, переделал тоже на шелл, попробовал оба варианта которые описывались, но та жа история, куда можно посмотреть, что пропустил? И есть момент, как можно проверить правильно ли срабатывает скрипт шелл, если запускаю через шелл (как по аналогии батники через командную) в ответ ругается, что не распознает команду.

  17. А нет случайно файлика шаблона для импорта для удобства?

    • Я там сильно под себя настраивал, нет смысла в паблик выносить.

      • Аноним

        На Kaby Lake не работает слежение за сенсорами температуры , можно ли как то исправить ?

        • Только если найти софт, который будет в консоль выводить температуру.

          • Вышла новая версия OHWM 0.8.0 beta
            но там в составе нету OpenHardwareMonitorReport.exe, вы сами делали эту службу?

            • Нет, она была.

              • Ради интереса скачал v 0.7.1 с офф сайта, и там в составе нету. Что я делаю не так?

                • Честно говоря, сейчас уже не могу вспомнить, где я взял консольную версию. Я похоже ее и сохранил именно к себе, так как она не входила в стандартный набор программы. Где-то в англоязычном инете я ее нашел и использовал. Думаю, в гугле по имени файла или по ключевым словам можно будет найти эту версию.

  18. Виктор

    А сталкивался ли кто с тем, что через несколько часов память компьютера забивается полностью и приходится его перегружать? Столкнулся с этим недавно и путем экспериментов выяснил, что именно мониторинг температуры процессора забивает память (хотя в памяти не видно запущенных процессов zabbix_agent'а). Используется бат-файл, думаю поэкспериментировать с повершеллом.

  19. Евгений

    Добрый день!
    Спасибо за статью. Однако столкнулся с проблемой. Есть батник на виндовой машине.
    @echo off
    for /F "usebackq tokens=7-10" %%a in (`C:\OHMReport\OpenHardwareMonitorReport.exe`) do echo %%b %%c %%d| find "/atigpu/0/temperature/0">nul && set temper=%%a
    echo %temper%
    Вызываю на ней через
    c:\zabbix>zabbix_agentd.exe -t Temperature.GPU
    получаю [t|67]
    вроде всё ок.

    Но с сервера через zabbix_get -s serv -k Temperature.GPU
    вываливается
    ▒▒▒▒▒ ▒뢮▒▒ ▒▒▒▒▒▒ ▒▒ ▒࠭ (ECHO) ▒⪫▒祭
    Соответственно и на веб морде тоже самое в LatestData.

    Кто сталкивался с такой особенностью?

    Спасибо.

    • У меня точно такая же проблема. Есть какое нибудь решение?

    • День добрый) появилось решение проблемы с выводом результата выполнения батника в zabbix??? такая же проблема у меня нарисовалась

  20. Константин

    Добрый день!
    У меня следующая проблема: При считывании параметров программой есть значение "| +- Temperature Difference from 100 : 64 64 64 (/hdd/0/temperature/0)"
    При добавлении параметра "@echo off
    for /F "usebackq tokens=7-10" %%a in (`C:\OpenHardwareMonitor\OpenHardwareMonitorReport.exe`) do echo %%b %%c %%d| find "/hdd/0/temperature/0">nul && set temper=%%a
    echo %temper%" в bat файл, в ответ получаю "Режим вывода команд на экран (ECHO) отключен.". В чем может быть проблема?

    • проблема в том что tokens=7-10 означает что из строки | +- Temperature Difference from 100 : 64 64 64 (/hdd/0/temperature/0)
      7-10 часть будет ": 64 64 64", а еще наверняка сначала строки есть еще одна палка |
      поэтому поиск по строке не проводится и в echo нечего вывести

  21. Я не знаю чем обусловлено, но для работы батников как минимум нужно увеличивать таймаут и агента и сервера. Скрипты power shel работают на дефолтных таймаутах. Да и визуально zabbix_get -s 10.0.2.14 -k system.sensor[atigpu,0,temperature,0] - который стучится на powershell скрипт - отдает результат в консоль за 1 секунду.
    zabbix_get -s 10.0.2.14 -k GPU1_temp - стучится на батник, отдает через 4 секунды...

  22. Тоже пошел путем powershell - не так тормозит систему и более универсальное решение...
    Скрипт powershell
    param($hw, $hwid, $sensor, $sensorid)
    (Get-WmiObject -Namespace Root\OpenHardwareMonitor -Class sensor | ?{$_.identifier -eq "/$hw/$hwid/$sensor/$sensorid"}).value

    Кстати, нужно разрешить выполнение скриптов
    Открываем powershell и делаем команду Set-ExecutionPolicy RemoteSigned
    Потом подтверждаем - Y

    В zabbix_agentd.conf
    UserParameter=system.sensor[*],powershell.exe C:\путь\до\вашего\скрипта powershell.ps1 $1 $2 $3 $4

    В zabbix
    В item:
    Имя - GPU1 Temperature
    system.sensor[atigpu,0,temperature,0] // ключи до вашей видюхи... у меня получилось так

    Я делал шаблон для мониторинга ферм, в ней 4 видюхи, сделал ключи для температуры, кулера и нагрузки...
    Примерно так:
    system.sensor[atigpu,0,temperature,0]
    system.sensor[atigpu,6,temperature,0]
    system.sensor[atigpu,12,temperature,0]
    system.sensor[atigpu,18,temperature,0]

    system.sensor[atigpu,0,fan,0]
    system.sensor[atigpu,6,fan,0]
    system.sensor[atigpu,12,fan,0]
    system.sensor[atigpu,18,fan,0]

    system.sensor[atigpu,0,load,0]
    system.sensor[atigpu,6,load,0]
    system.sensor[atigpu,12,load,0]
    system.sensor[atigpu,18,load,0]

    Все данные пошли. Осталось вот тригеры дописать и счастье :)
    Могу скинуть целиком шаблон...

    • Чисто для справки, почему powershell не так тормозит? Это чем-то обусловлено или только предположения? Я несколько раз использовал описанный в этой статье пример, у меня нормально работает. В одном офисе до сих пор с момента написания статьи трудятся эти скрипты и мониторят температуру. Вчера буквально проверял.

      • Герман

        в данном случае данные тянуться из WMI windows уже выполняющегося в трее openhardwareGUI версии. powershell тут было удобнее тащить из Массива. Сам же zabbix тоже умеет wmi, но вроде не массивы. Одинарное выражение. к примеру zabbix_get -s namepc -p 10050 -k "wmi.get[root\cimv2,SELECT UserName from Win32_ComputerSystem]" - выдаст имя пользователя активного за пк. Но вот с массивами не пробовал.

      • Сергей

        На старом железе i7 2700k использовал Ваше решение. Потом, когда установил каспер, Ваш метод начал часто отваливаться по таймауту. Перешел на ps, всё гуд.

    • можно шаблон? либо просто посмотрю либо под себя переделаю.

  23. Отличный гайд! Спасибо!
    Датчики CPU/HDD работают, однако при попытке снять температуру GPU график не появляется.
    Батник отрабатывает и показывает реальную температуру, график в Zabbix пишет GPU Temperature [no data], в логах сервера
    2820:20170123:112614.418 item "Miner-04:GPU.1.Temperature" became not supported: Received value [ECHO is off] is not suitable for value
    type [Numeric (unsigned)] and data type [Decimal]
    при смене на Float, соответственно в логах
    2823:20170123:113044.631 error reason for "Miner-04:GPU.1.Temperature" changed: Received value [ECHO is off.] is not suitable for value
    type [Numeric (float)]

    Может есть идеи, куда копать? Спасибо!

    • Где-то ошибка. В zabbix на итем приходит не цифровое значение, а что-то другое. Я постоянно сталкиваюсь с такими ошибками. Надо отлаживать. Проверить можно через zabbix_agentd -t "имя итема" что он вообще отправляет на сервер.

      • Вообще очень странно. Я включил дебаг, в заббикс приходит значение "ECHO is off".
        По вашему совету сделал команду, вот странный вывод:
        c:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -t CPU.Temperature.Core.1
        CPU.Temperature.Core.1 [t|ECHO is off.]
        c:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -t GPU.1.Temperature
        GPU.1.Temperature [t|52]
        c:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -t CPU.Temperature.Core.1
        CPU.Temperature.Core.1 [t|62]
        То есть в первом случае, когда я парсил температуру CPU, мне выдало Echo is off, а через несколько секунд выдало реальную температуру.
        Однако, с температурой CPU проблем нет (в плане графиков, заббикс её понимает). А информацию о температуре GPU как раз (как я выше и описал) заббикс получить и не может. Однако судя по консольной команде выше, агент переваривает итем GPU.1.Temperature и возвращает нормальное числовое значение.

        Батники идентичны, при запуске батника выводится реальная информация.

        Получается, что отправляет на сервер корректное число, а сервер его не принимает и по всем айтемам пишет [no data].
        ЧСХ это касается ТОЛЬКО датчиков GPU. ВСЕХ GPU. Все (!) датчики CPU, RAM, HDD работают корректно.
        Весь инет перегуглил, не могу найти решения. :(

        • Ну если что, решил через powershell скрипт вместо батника:

          param($hw="nvidiagpu", $hwid=0, $sensor="temperature", $sensorid=0)

          (Get-WmiObject -Namespace Root\OpenHardwareMonitor -Class sensor | where {$_.identifier -eq "/$hw/$hwid/$sensor/$sensorid"}).value

          В zabbix_agentd.conf
          UserParameter=system.sensor[*],powershell.exe C:\scripts\cpuid.ps1 $1 $2 $3 $4

          В zabbix
          В item:
          key = system.sensor[intelcpu,0,temperature,0]

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

          • Если не трудно распишите поподробнее

          • Пытаюсь через PowerShell запустить этот батник cpuid.ps1, но выдается ошибка:

            PS D:\OpenHardwareMonitor> .\cpuid.ps1
            At D:\OpenHardwareMonitor\cpuid.ps1:1 char:11
            + param($hw=»nvidiagpu», $hwid=0, $sensor=»temperature», $sensorid=0)
            + ~
            Missing expression after '='.
            At D:\OpenHardwareMonitor\cpuid.ps1:1 char:10
            + param($hw=»nvidiagpu», $hwid=0, $sensor=»temperature», $sensorid=0)
            + ~
            Missing ')' in function parameter list.
            At D:\OpenHardwareMonitor\cpuid.ps1:1 char:22
            + param($hw=»nvidiagpu», $hwid=0, $sensor=»temperature», $sensorid=0)
            + ~
            Missing argument in parameter list.
            At D:\OpenHardwareMonitor\cpuid.ps1:1 char:67
            + param($hw=»nvidiagpu», $hwid=0, $sensor=»temperature», $sensorid=0)
            + ~
            Unexpected token ')' in expression or statement.
            At D:\OpenHardwareMonitor\cpuid.ps1:3 char:92
            + ... \OpenHardwareMonitor -Class sensor | where {$_.identifier -eq «/$hw/$ ...
            + ~
            You must provide a value expression following the '-eq' operator.
            At D:\OpenHardwareMonitor\cpuid.ps1:3 char:93
            + ... sor | where {$_.identifier -eq «/$hw/$hwid/$sensor/$sensorid»}).value
            + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Unexpected token '«/$hw/$hwid/$sensor/$sensorid»' in expression or statement.
            + CategoryInfo : ParserError: (:) [], ParseException
            + FullyQualifiedErrorId : MissingExpressionAfterToken

            Что делаю не так. подскжите?

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

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

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar