Мониторинг серверов HP через iLO в Zabbix
Мониторинг серверов HP через iLO в Zabbix
В статье показан пример реализации мониторинга серверов Hewlett Packard через интерфейс iLO (платформо-независимая текстовая консоль для отображения и управления активностью удалённого сервера, например, включение и выключение). Подразумевается что у вас уже имеются свои или арендные сервера и развернутая система мониторинга Zabbix. Удобно использовать данное решение при использовании арендных серверов, так называемый: выделенный сервер (англ. dedicated server) — вид хостинга, при котором клиенту целиком предоставляется отдельная физическая машина (в противоположность виртуальному хостингу) c доступом к интерфейсу iLO. Арендовать дедик порой самое гуманное решение, так как вы платите только арендную плату, а за обеспечение: физическую охрану, кондиционирование, питание, в том числе и физический update платит арендодатель. Итак, у вас есть серверы с доступом к iLO и система мониторинга Zabbix.
Обзор
Шаблон позволяет собирать типы данных:
— Температуры, вентиляторы, источники питания для Proliants G5 и выше;
— Диски и состояние памяти для Proliants G7 и выше;
— Общая информация инвентаризации таких как последовательный и номера моделей, версий прошивок и т.д.
Это решение требует FreeIPMI пакет (мультиплатформенное программное обеспечение для взаимодействия с BMC (Baseboard Management Controller), имеющемся на серверных материнских платах от Intel).
Архив содержит шаблон и два Perl скрипты:
ilo_discovery.pl — запросов МОТ для элементов и создания стандартного вывода JSON для LLD,
ipmi_proliant.pl — запросов все данные для указанного IPMI разделе (датчиков, шасси, FRU и т.д.). Данные будут сохраняться в временный файл, чтобы предотвратить МОТ быть перегружен IPMI запросов. Тогда указанное значение извлечения из кэша.
Установка
- Скачать архив со скриптами и шаблоном, импортировать шаблон в Zabbix,
- Положить скрипты ilo_discovery.pl и ipmi_proliant.pl в папку, указанную в качестве хранилища ExternalScripts в конфиге Zabbix, и сделать их исполняемыми,
- Скачать и установить FreeIPMI (FAQ по сборке и зависимостям лежит тут):
# wget http://ftp.gnu.org/gnu/freeipmi/freeipmi-1.2.1.tar.gz # tar -xvzf freeipmi-1.2.1.tar.gz # cd freeipmi-1.2.1 # ./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --mandir=/usr/share/man # make install
Для 64-битных систем строка configure будет такой:
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --mandir=/usr/share/man --libdir=/usr/lib64
- Создать в iLO учетную запись для Zabbix и прописать ее данные в скриптах ($user и $pass),
- Проверить, что FreeIPMI успешно подключается к iLO (адрес, логин и пароль подставляем свой):
# /usr/sbin/ipmi-sensors -D LAN2_0 -h 192.168.0.1 -u monitor -p P@$$w0rd -l USER -W discretereading --no-header-output --quiet-cache --sdr-cache-recreate --comma-separated-output --entity-sensor-names
В ответ мы должны получить список датчиков наподобие:
0,System Chassis 1 UID Light,OEM Reserved,N/A,N/A,'OEM Event = 0000h' 1,System Chassis 2 Health LED,OEM Reserved,N/A,N/A,'OEM Event = 0000h' 2,Processor Module VRM 1,Power Unit,N/A,N/A,'Device Inserted/Device Present' 3,Power Supply Power Supply 1,Power Supply,N/A,N/A,'Presence detected'
- Проверить, что скрипт успешно парсит данные обнаружения (адрес подставляем свой):
# /usr/lib/zabbix/externalscripts/ilo_discovery.pl 192.168.0.1 sensor temp numeric
В ответ мы должны получить примерно такой вывод:
{ "data":[ { "{#CLASS}":"sensor", "{#KEY}":"Air Inlet 01-Inlet Ambient", "{#SECTION}":"Temperature", "{#TYPE}":"numeric", "{#MEASURE}":"C"}, { "{#CLASS}":"sensor", "{#KEY}":"Processor 02-CPU", "{#SECTION}":"Temperature", "{#TYPE}":"numeric", "{#MEASURE}":"C"},
- В веб-интерфейсе Zabbix для сервера, который мы хотим опрашивать через iLO, прописать адрес iLO в макросе {$ILO} (в поле адреса ipmi интерфейса ничего указывать не надо),
- Привязать к этому серверу шаблон мониторинга iLO
- Подождать, пока отработает обнаружение.
9. Дождитесь открытие будет полным. В конце него, мы должны получить что-то вроде этого в «Последние данные»:
В конце настройки, мы должны получить что-то вроде этого в «Последние данные»:
В результате выполнения описанного легковесного решения, вы получите удаленный мониторинг основных элементов сервера, через интерфейс iLO.
Много слышал о Zabbix хорошего, спасибо за туториал, бум ставить.
Спасибо за мануал
А как быть если пролианты за забикс-прокси стоят? Есть нюансы или все по инструкции?
Есть нюансы, всё вышеописанное нужно будет проделать на прокси.
>Проверить, что скрипт успешно парсит данные обнаружения (адрес подставляем свой):
Ну а что делать, если неуспешно?
Выполнение скрипта отдает следующие данные:
[root@localhost externalscripts]# /etc/zabbix/externalscripts/ilo_discovery.pl 10.46.1.148 sensor temp numeric
Use of uninitialized value $results in print at /etc/zabbix/externalscripts/ilo_discovery.pl line 56.
{
«data»:[
]}