Главная > Linux, Windows > Zabbix + HP RAID + hpacucli + температура HDD

Zabbix + HP RAID + hpacucli + температура HDD

Как в zabbix добавить мониторинг температуры HDD в рэйд массиве на HP?

Возник вопрос, как же отследить температуру HDD в рейде на серверах HP?

Некоторые скажут, что есть iLO v4 которая через SNMP все это показывает, некоторые найдут другой вариант, а мы пошли так сказать изобретая небольшой велосипед, т.к. у нас было только iLO v3 которая не умеет по SNMP показывать температуру ну и вообще, нужно же было как то себя развлекать.

Приступим ....

Сервер у нас на Win2012 R2, но это роли не играет, играет роль как собрать температуру хардов... У HP есть своя утилитка hpacucli, которая работает с рейд контроллером и имеет как консольную версию так и UI.

В написании красивых скриптов в CMD мы не особо сильны, да и в этой задаче не особо хотелось (может кто-то посоветует более симпатичный вариант), но на быструю руку мы состряпали вот такой bat'ник:

@echo off
SetLocal EnableExtensions EnableDelayedExpansion
"C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.exe" ctrl slot=0 pd 1I:1:1 show | findstr /C:"Current Temperature (C): " > tmp.txt
FOR /F "eol=; tokens=4 delims=, " %%i in (tmp.txt) do C:\zabbix\zabbix_sender.exe -z zabbix.local -s hyper-v3 -k HddTemp_1 -o %%i

Т.к. у нас дисков на сервере шесть, то и таких строк (по две) будет шесть групп для каждого диска.

Теперь, что тут у нас происходит:

ЧАСТЬ 1

ctrl slot=0 pd 1I:1:1 show - выбираем слот и "айди" диска по которому нужно получить полную информацию в т.ч. и температуру

findstr /C:"Current Temperature (C): - ищем во всем этом добре только строчку с текущей температурой

tmp.txt - пишем строчку во временный файл

FOR /F "eol=; tokens=4 delims=, " %%i in (tmp.txt) - парсим временный файл и достаем только число (т.е. текущее значение температуры)

C:\zabbix\zabbix_sender.exe -z zabbix.local - запускаем zabbix_sender (его можно скачать на офф. сайте забикса) с параметрами:

-s hyper-v3 - имя узла в который передаем значение

-k HddTemp_1 - имя (название) ключа в который передаем значение

-o %%i - и само значение температуры

ЧАСТЬ 2

В настройках заббикс агента на сервере с которого получаем температуру, добавляем следующую строчку:

UserParameter=HddTemp,C:\HDDtemper\HDD_temp.bat - тем самым сообщая, что в переменную HddTemp нужно положить результат bat скрипта который будет выболнен (зачем это сделано и весь этот смысл, вы поймете чуть позже)

ЧАСТЬ 3

Настраиваем шаблон в самом заббиксе.

1. Создаем шаблон

2. Добавляем в него элемент данных как показано ниже

hdd_temp_zabbix

Тут мы указали, что будем получать по ключу HddTemp_1 результат от zabbix_sender'a.
Тип данных разумеется десятичный, т.к. мы получаем число

3. И самое интересное... В части 2 мы указали юзер параметры которые должны запускать скрипт и передавать результат от него, но мы сделали хитрее. Чтобы не добавлять выполнение скрипта в планировщик на самом сервере с которого мы получаем температуру, запуск скрипта мы будем провоцировать из самого заббикса.

Добавляем еще один элемент данных вот так:

hdd_temp_zabbix2

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

Удачи...

Categories: Linux, Windows Tags: , , ,
1 звезда2 звезды3 звезды4 звезды5 звезд (Рейтинг отсутствует)

Загрузка...
  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.


× семь = 7

Heads up! You are attempting to upload an invalid image. If saved, this image will not display with your comment.