Мониторинг серверов HP через iLO в Zabbix

Автор Itworkroom

Мониторинг серверов 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 запросов. Тогда указанное значение извлечения из кэша.

Установка

  1. Скачать архив со скриптами и шаблоном, импортировать шаблон в Zabbix,
  2. Положить скрипты ilo_discovery.pl и ipmi_proliant.pl в папку, указанную в качестве хранилища ExternalScripts в конфиге Zabbix, и сделать их исполняемыми,
  3. Скачать и установить 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
  4. Создать в iLO учетную запись для Zabbix и прописать ее данные в скриптах ($user и $pass),
  5. Проверить, что 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'
  6. Проверить, что скрипт успешно парсит данные обнаружения (адрес подставляем свой):
    # /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"},
  7. В веб-интерфейсе Zabbix для сервера, который мы хотим опрашивать через iLO, прописать адрес iLO в макросе {$ILO} (в поле адреса ipmi интерфейса ничего указывать не надо),
  8. Привязать к этому серверу шаблон мониторинга iLO
  9. Подождать, пока отработает обнаружение.

9. Дождитесь открытие будет полным. В конце него, мы должны получить что-то вроде этого в «Последние данные»:

В конце настройки, мы должны получить что-то вроде этого в «Последние данные»: Мониторинг серверов HP через iLO в ZabbixМониторинг серверов HP через iLO в Zabbix
В результате выполнения описанного легковесного решения, вы получите удаленный мониторинг основных элементов сервера, через интерфейс iLO.

4 comments on “Мониторинг серверов HP через iLO в Zabbix

  1. Много слышал о Zabbix хорошего, спасибо за туториал, бум ставить.

  2. Спасибо за мануал
    А как быть если пролианты за забикс-прокси стоят? Есть нюансы или все по инструкции?

    • Есть нюансы, всё вышеописанное нужно будет проделать на прокси.

  3. >Проверить, что скрипт успешно парсит данные обнаружения (адрес подставляем свой):
    Ну а что делать, если неуспешно?
    Выполнение скрипта отдает следующие данные:

    [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»:[
    ]}

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

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