Скрипт + Шаблон для Windows LLD Hardware Monitor

Мониторинг Железа
Датчики температур
Кулера
Диски
Напряжение
и т.д.
rlz
Гость
Сообщения: 4
Стаж: 1 месяц

Скрипт + Шаблон для Windows LLD Hardware Monitor

Сообщение rlz »

Эти значения "clock\fan\temperature..." - это значения "SensorType" (если я верно понял)
Проблема в том, что температурные датчики и GPU и CPU и материнки, все имеют одинаковый SensorType = Temperature, без указания - CPU/GPU/***, соотв. если в фильтре мы укажем Temperature CPU, то в выдаче ничего не получим, т.к. такого датчика нет. И как быть - не совсем понятно.
Пробовал в OHM отключать MotherBoard (чекбокс в настройках), в таком случае в выдачу данные из материнки реально перестают попадать, но все остальные данные по другим датчикам в json'e некорректные + пропадают данные по куллерам, которые было бы неплохо оставить))

Пример из выдачи:
Спойлер (скрытый свернутый текст)
Показать
GPU Температура:

__GENUS : 2
__CLASS : Sensor
__SUPERCLASS :
__DYNASTY : Sensor
__RELPATH : Sensor.InstanceId="3871",ProcessId="2846a47c-338c-4b8e-b3a6-67cde4a4b004"
__PROPERTY_COUNT : 10
__DERIVATION : {}
__SERVER : SERVER
__NAMESPACE : Root\OpenHardwareMonitor
__PATH : \\SERVER\Root\OpenHardwareMonitor:Sensor.InstanceId="3871",ProcessId="2846a47c-338c-4b8e-b3a6-67cde4a4b004"
Identifier : /nvidiagpu/0/temperature/0
Index : 0
InstanceId : 3871
Max : 37
Min : 36
Name : GPU Core
Parent : /nvidiagpu/0
ProcessId : 2846a47c-338c-4b8e-b3a6-67cde4a4b004
SensorType : Temperature
Value : 37

CPU температура:

__GENUS : 2
__CLASS : Sensor
__SUPERCLASS :
__DYNASTY : Sensor
__RELPATH : Sensor.InstanceId="3856",ProcessId="2846a47c-338c-4b8e-b3a6-67cde4a4b004"
__PROPERTY_COUNT : 10
__DERIVATION : {}
__SERVER : SERVER
__NAMESPACE : Root\OpenHardwareMonitor
__PATH : \\SERVER\Root\OpenHardwareMonitor:Sensor.InstanceId="3856",ProcessId="2846a47c-338c-4b8e-b3a6-67cde4a4b004"
Identifier : /intelcpu/0/temperature/4
Index : 4
InstanceId : 3856
Max : 45
Min : 37
Name : CPU Package
Parent : /intelcpu/0
ProcessId : 2846a47c-338c-4b8e-b3a6-67cde4a4b004
SensorType : Temperature
Value : 37

Температура материнки:

__GENUS : 2
__CLASS : Sensor
__SUPERCLASS :
__DYNASTY : Sensor
__RELPATH : Sensor.InstanceId="3906",ProcessId="2846a47c-338c-4b8e-b3a6-67cde4a4b004"
__PROPERTY_COUNT : 10
__DERIVATION : {}
__SERVER : SERVER
__NAMESPACE : Root\OpenHardwareMonitor
__PATH : \\SERVER\Root\OpenHardwareMonitor:Sensor.InstanceId="3906",ProcessId="2846a47c-338c-4b8e-b3a6-67cde4a4b004"
Identifier : /lpc/nct6793d/temperature/5
Index : 5
InstanceId : 3906
Max : 111
Min : 110
Name : Temperature #5
Parent : /lpc/nct6793d
ProcessId : 2846a47c-338c-4b8e-b3a6-67cde4a4b004
SensorType : Temperature
Value : 111
количество слов: 222
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 367
Стаж: 2 года 9 месяцев
Откуда: Вологодская область
Контактная информация:

Скрипт + Шаблон для Windows LLD Hardware Monitor

Сообщение Артём Мамзиков »

rlz, Строки берутся из таблицы wmic.exe /NAMESPACE:\\root\OpenHardwareMonitor PATH Sensor
если строка соответствует критерию (искомому значению) она остается или убирается в зависимости от макроса, происходит построчная обработка.
sed -n '/'Что оставить'/Ip'
sed -e '/'Что скрыть'/d'
Обработка идет через SED.

Если имя не универсально переименовываем его как нам нужно в HM. )

Либо
Так же можно Фильтровать данные стандартно Правило обнаружения вкладка Фильтры
Её можно задать в шаблоне
Либо в Узле под конкретный узел создать.
Так же можно создать глобальные регулярные выражения
Администрирование - Общие - Регулярные выражения
Более подробно Низкоуровневое обнаружение
количество слов: 16
rlz
Гость
Сообщения: 4
Стаж: 1 месяц

Скрипт + Шаблон для Windows LLD Hardware Monitor

Сообщение rlz »

Победа! :)
Про фильтр sed'ом я даже и не подумал сначала.
Спасибо большое, все получилось :)
количество слов: 1
Аватара пользователя
Василий Залукаев
Гость
Сообщения: 6
Стаж: 1 год 3 месяца

Скрипт + Шаблон для Windows LLD Hardware Monitor

Сообщение Василий Залукаев »

В win10 21h1 OHM 0.9.5 не отдаем в wmi информацию, "Отсутствуют экземпляры". А вот 0.9.6 отдает. И все завелось.
Артём Мамзиков писал(а): Ср окт 13, 2021 15:22 rlz, Добрый день!

{$HIDEHM} Имя скрытия
Собственно не выходит у меня немного в этом плане.
К примеру у меня OHM возвращает 6 температурных датчиков я так понимаю с MB. Так вот 4 из них возвращают температуру за 100:

Код: Выделить всё

/lpc/nct6796d/temperature/6  6      3923        112       110,5      Temperature #6       /lpc/nct6796d  5255ed30-6901-4173-99c0-e9935fdf74df  Temperature  111,5
Я в макросы добавил:
Имя: {$HIDEHM}
Значение: "Temperature #3 \|Temperature #4 \|Temperature #5 \|Temperature #6"
Не работает... Во первых У последнего параметра поставить пробел в конце, он удаляется. Во вторых на сколько я понимаю данные так и прилетают в:
Что я делаю не так? Спасибо.
Последний раз редактировалось Василий Залукаев Ср окт 20, 2021 08:20, всего редактировалось 1 раз. количество слов: 51
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 367
Стаж: 2 года 9 месяцев
Откуда: Вологодская область
Контактная информация:

Скрипт + Шаблон для Windows LLD Hardware Monitor

Сообщение Артём Мамзиков »

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

Так же можно проверить командой в терминале ssh на заббикс скрываются данные строки или нет при выводе.
количество слов: 1
Аватара пользователя
Василий Залукаев
Гость
Сообщения: 6
Стаж: 1 год 3 месяца

Скрипт + Шаблон для Windows LLD Hardware Monitor

Сообщение Василий Залукаев »

Артём Мамзиков писал(а): Ср окт 20, 2021 10:08 Василий Залукаев, то что пробела нет в данном случае не критично , при желании можно попробовать прописать в кавычках.
После прописания макроса не обходимо проверить правило обнаружение сейчас, так как они влияют на обнаружение элементов по умолчанию автоматом проверяется через цать часов. После чего будет написано данные элементы больше не обнаруживаются и будут удалены, да бы не ждать удаление можно удалить вручную.

Так же можно проверить командой в терминале ssh на заббикс скрываются данные строки или нет при выводе.
/usr/lib/zabbix/externalscripts/HM3.5.sh mcb-409-1 10050 maxtemp "root\OpenHardwareMonitor" "Clock\|Temperature\|Fan\|Voltage" "Load\|Control\|Data\|Throughput|\TjMax|\Temperature #3 |\Temperature #4 |\Temperature #5 |\Temperature #6 " cp866 mcb-409-1

И все равно 113...

И даже каждый датчик выделил вот так'Temperature #3 ', а все равно 113
количество слов: 44
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 367
Стаж: 2 года 9 месяцев
Откуда: Вологодская область
Контактная информация:

Скрипт + Шаблон для Windows LLD Hardware Monitor

Сообщение Артём Мамзиков »

Василий Залукаев, тут фильтр не работает для максимальной температуры это обычный простой запрос который берет самую максимальную температуру которая есть, тебе после порта 10050 нужно указать поиск discovery и фильтр за счёт него создаются элементы при обнаружении.

Если делать фильтрацию для максимальной температуры нужно добавить фильтра |sed -n '/'$FILTR'/Ip'|sed -e '/'$HIDE'/d' в этот блок
# Запрашиваем таблицу|перекодируем|выбираем строки с температурой|показать столбец значения|Исключаем обратную температуру|Вывод только числового значения|Сортировка от меньшего к большему|вывод последней строки
maxtemperature=`zabbix_get -s $IP -p $PORT -k system.run["WMIC.exe /NAMESPACE:"${SL}""${puti}" PATH Sensor"]|iconv -f "${KODR}" -t utf8|sed -n '/'Temperature'/Ip'|sed -n '/'$FILTR'/Ip'|sed -e '/'$HIDE'/d'|awk '{print $(NF-1)}'|egrep -o '[0-9]+'|sort -n| tail -n1`

Получается так.
количество слов: 56
Аватара пользователя
Василий Залукаев
Гость
Сообщения: 6
Стаж: 1 год 3 месяца

Скрипт + Шаблон для Windows LLD Hardware Monitor

Сообщение Василий Залукаев »

Артём Мамзиков писал(а): Ср окт 20, 2021 13:14 /usr/lib/zabbix/externalscripts/HM3.5.sh mcb-409-1 10050 maxtemp "root\OpenHardwareMonitor" "Clock\|Temperature\|Fan\|Voltage" "Load\|Control\|Data\|Throughput|\TjMax|\Temperature #3 |\Temperature #4 |\Temperature #5 |\Temperature #6 " cp866 mcb-409-1
Все. разобрался. Спасибо большое за Ваш труд!
В скрипте добавил maxtempcpu, там поменял temperature на sed -n '/'CPU-Package'/Ip', переименовал в OHM (без переименования можно? там по дефолту пробел стоит) ну и дальше уже в шаблоне скопировал maxtemp с переименование ))) Все завелось.
количество слов: 48
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 367
Стаж: 2 года 9 месяцев
Откуда: Вологодская область
Контактная информация:

Скрипт + Шаблон для Windows LLD Hardware Monitor

Сообщение Артём Мамзиков »

Василий Залукаев, Если все работает можно ничего не переименовывать, если сделали весь контроль через элемент максимальная температура , можно обнаружение правило отключить если отдельных данных не нужно.
количество слов: 0
Аватара пользователя
Василий Залукаев
Гость
Сообщения: 6
Стаж: 1 год 3 месяца

Скрипт + Шаблон для Windows LLD Hardware Monitor

Сообщение Василий Залукаев »

Артём Мамзиков писал(а): Чт окт 21, 2021 10:02 Василий Залукаев, Если все работает можно ничего не переименовывать, если сделали весь контроль через элемент максимальная температура , можно обнаружение правило отключить если отдельных данных не нужно.
Все ))) Победил окончательно. Вот я не внимательный ))) Еще раз спасибо большое!
Последний раз редактировалось Василий Залукаев Чт окт 21, 2021 12:13, всего редактировалось 2 раза. количество слов: 4
Ответить Вложения 36 Пред. темаСлед. тема

Вернуться в «Аппаратное обеспечение»