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

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

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

Сообщение mur3ilka »

Привет. Подскажи, пожалуйста, как работает фильтр по макс.температуре? В скрипте добавил |sed -n '/'$FILTR'/Ip'|sed -e '/'$HIDE'/d'|.
При проверке ./HM3.5.sh s1085 10050 maxtemp "root\LibreHardwareMonitor;root\OpenHardwareMonitor" "CPU Package" "^$" cp866 "ИМЯ Узла" отрабатывает нормально.
В Zabbix в Макросы {$FILTRHM} добавил в конце \|CPU Package, но триггер MaxTemp все равно срабатывает на высокую температуру всех датчиков.
Я что то неправильно делаю? Как реализовать чтобы обнаруживались все датчики, а триггер на макс.температуру срабатывал только на температуру процессора, без добавления триггеров на узлы вручную. Спасибо.
количество слов: 26
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 498
Стаж: 3 года 6 месяцев
Откуда: Вологодская область
Поблагодарили: 20 раз
Контактная информация:

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

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

mur3ilka, Привет!

Блок с фильтрами будет выглядеть так

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

elif [[ $BLOCSCRIPT = "maxtemp" ]]
then
# Проверка нескольких путей ПО на 1 хосте, делим через ;
IFS=';' read -ra sumdir < <(echo "${PUT}")
# Печать разделенной строки
for puti in "${sumdir[@]}"
do
# Запрашиваем таблицу|перекодируем|выбираем строки с температурой|Исключаем обратную температуру|показать столбец значения|Вывод только числового значения|Оставляем целое число|Сортировка от меньшего к большему|вывод последней строки
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 -e '/'TjMax'/d'|sed -n '/'$FILTR'/Ip'|sed -e '/'$HIDE'/d'|awk '{print $(NF-1)}'|sed -E 's/\.[0-9]+|\,[0-9]+//g'|egrep -o '[0-9]+'|sort -n| tail -n1`
# Для нескольких ПО
maxtemp=$maxtemp"\n${maxtemperature}"
done
# Выводим максимальный результат
echo -e "${maxtemp}"|sort -n| tail -n1
fi
Если нужны еще значения после запятой то так

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

elif [[ $BLOCSCRIPT = "maxtemp" ]]
then
# Проверка нескольких путей ПО на 1 хосте, делим через ;
IFS=';' read -ra sumdir < <(echo "${PUT}")
# Печать разделенной строки
for puti in "${sumdir[@]}"
do
# Запрашиваем таблицу|перекодируем|выбираем строки с температурой|Исключаем обратную температуру|показать столбец значения|Вывод только числового значения|Оставляем целое число|Сортировка от меньшего к большему|вывод последней строки
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 -e '/'TjMax'/d'|sed -n '/'$FILTR'/Ip'|sed -e '/'$HIDE'/d'|awk '{print $(NF-1)}'|egrep -o '[0-9]+\.[0-9]+|[0-9]+\,[0-9]+|[0-9]+'|sort -n| tail -n1`
# Для нескольких ПО
maxtemp=$maxtemp"\n${maxtemperature}"
done
# Выводим максимальный результат
echo -e "${maxtemp}"|sort -n| tail -n1
fi
В целом фильтрация должна работать либо конкретно укажи в |sed -n '/'CPU Package'/Ip'
CPU Package - в некоторых случаях нужно проверить бывает показывает -105 или наоборот 160 не корректно выводит

Есть промежуточный шаблон 3.0-3.4 и 3.5 измененные
для них есть 2 скрипта hmitemapi.sh и triggercreatezbxapi.sh (Указать Логин Пароль в скриптах от заббикс)
Первый выбирает все элементы в узле и на основе их формирует триггеры
Второй уже непосредственно их создает та же сразу проставляются зависимости.

в 3.6 шаблоне там прямо при обнаружении передавали данные на создание триггеров но там мало условий на тот момент было.

Что еще возможно будет.
В целом думаю триггеры будут формировать по оборудованию температура 1 проц 1 триггер , температура 2 проц 2 триггер, материнская плата температура этого чипа. Дальше кулера обороты и то что не заклинил 0, напряжение как то номиналы с имени стащить.
Так же создание графиков и добавление url ссылки на график в соответствующий триггер.
В создание триггера добавить еще обновление если уже создан.

Кому интересно можно потестировать)
СКАЧАТЬ
04.06.22-HM промежуточный варинат.zip
04.06.22-HM промежуточный варинат.zip
(51.39 КБ) 11 скачиваний
количество слов: 216
Партнёрская ссылка на Хостинг Beget https://beget.com/p937243
mur3ilka
Гость
Сообщения: 1
Стаж: 1 месяц

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

Сообщение mur3ilka »

Спасибо за варианты решения.
В общем в скрипте рядом с |sed -n '/'Temperature'/Ip'| добавил |sed -n '/'CPU'/Ip'. Проверил на некоторых машинах и вроде все срабатывает верно. А если вбить CPU Package ругается:
sed: -e expression #1, char 4: unterminated address regex
sed: -e expression #1, char 4: unterminated address regex


По поводу 3.6. Попробовал на тестовой машине.
На тестовой машине ./HM3.6.sh s1003 10050 discovery "root\OpenHardwareMonitor" выдает такие строки:
triggercreatezbxapi.sh: line 68: curl: command not found
Вход в систему выполнен успешно - Идентификатор авторизации:
Массив текущих зависимостей:
triggercreatezbxapi.sh: line 287: curl: command not found
sed: -e expression #1, char 30: unterminated `s' command
Найденые триггеры:
triggercreatezbxapi.sh: line 314: curl: command not found
Создание триггера:
triggercreatezbxapi.sh: line 83: curl: command not found
Успешно вышел из Zabbix
triggercreatezbxapi.sh: line 68: curl: command not found
Вход в систему выполнен успешно - Идентификатор авторизации:
Массив текущих зависимостей:
triggercreatezbxapi.sh: line 287: curl: command not found
sed: -e expression #1, char 30: unterminated `s' command
Найденые триггеры:
triggercreatezbxapi.sh: line 314: curl: command not found
Создание триггера:
triggercreatezbxapi.sh: line 83: curl: command not found
Успешно вышел из Zabbix
Версия забикса 6.0.5
Последний раз редактировалось mur3ilka Ср июн 29, 2022 07:36, всего редактировалось 1 раз. количество слов: 125
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 498
Стаж: 3 года 6 месяцев
Откуда: Вологодская область
Поблагодарили: 20 раз
Контактная информация:

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

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

mur3ilka, пробуй в кавычках sed -n '/'"CPU Package"'/Ip'
3.6 если его надо править там отличаются порядок переменных, пробуй 3,4 шаблон со скриптами.
количество слов: 10
Партнёрская ссылка на Хостинг Beget https://beget.com/p937243
Ответить Вложения 37 Пред. темаСлед. тема

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