Мониторинг серверов с Intel RMM средствами Zabbix

Lumber room
Исторически сложилось так, что в своей работе мы используем серверы компании Intel. И сейчас, при создании комплексной системы мониторинга, появилась задача — снимать статистику не только по операционной системе, но и по состоянию железа. Но температуру, напряжение, скорость вращения кулеров и многое другое на этих серверах можно получить с BMC только посредством IPMI.
Intel RMM3

Overview


У Intel для этих целей можно заказать модули RMM (Remote Management Module) — модули для удалённого управления сервером до загрузки операционной системы, а в последних линейках серверов можно обойтись и встроенными средствами AMT. Немного подробнее можно прочитать в статье Василия Лизунова на Intel IT Galaxy
Intel RMM2
В качестве средства мониторинга мы используем Zabbix. Причина выбора данного продукта очень проста — не требуется собирать велосипеды. Графики для руководства? Пожалуйста. Хочется узнать время отклика сайтов? Без проблем. Оповещения? Элементарно. А если захочется — то и по SNMP статистику со свитчей снимать можно.
И немаловажное преимущество — Zabbix умеет работать с IPMI-enabled устройствами через библиотеки openipmi. Такого функционала я не видел ни в одной свободной системе мониторинга.

Настраиваем IPMI


Настроить IPMI на сервере проще всего с использованием утилиты ipmitool.
~ # ipmitool shell
ipmitool>

Настраиваем параметры, относящиеся к сети. При этом мы используем канал #1, который на самом деле является первым сетевым интерфейсом сервера. RMM перехватывает предназначенные ему данные. Можно использовать и выделенный интерфейс RMM, но это дело личных предпочтений.
ipmitool> lan set 1 ipsrc static
ipmitool> lan set 1 ipaddr 192.168.1.17
ipmitool> lan set 1 netmask 255.255.255.0
ipmitool> lan set 1 defgw ipaddr 192.168.1.10

У RMM2 есть проблема — он не полностью совместим со стандартом RMCP+ (IPMI 2.0). При удалённом подключении из ipmitool необходимо к -I lanplus добавить -o intelplus. У RMM3 таких проблем нет, но, в целях обратной совместимости, будем пускать пользователей по протоколу IPMI 1.5 с механизмом аутентификации MD5.
ipmitool> lan set 1 access on
ipmitool> lan set 1 auth USER MD5

Добавляем собственно пользователя zabbix с userid=2 и паролем zabbix:
ipmitool> user set name 2 zabbix
ipmitool> user set password 2 zabbix
ipmitool> user priv 2 2 1

Последняя строка, уровень привилегий пользователя, имеет формат
user priv <user id> <privilege level> <channel number>
Possible privilege levels are:
   1   Callback level
   2   User level
   3   Operator level
   4   Administrator level
   5   OEM Proprietary level
  15   No access

И, наконец, настраиваем канал и проверяем возможность залогиниться:
ipmitool> channel setaccess 1 2 callin=on ipmi=on link=on privilege=2
ipmitool> channel authcap 1 2
ipmitool> user test 2 16 zabbix
Success

Настраиваем Zabbix


Для того, чтобы включить IPMI-поллеры, требуется раскомментировать строку "StartIPMIPollers=" в конфигурационном файле zabbix-сервера, указав количество процессов, ответственных за сбор информации с IPMI (одного обычно более чем достаточно). Естественно, предварительно нужно собрать zabbix с поддержкой openipmi (в Gentoo — просто добавить USE-флаг openipmi)
В логе при перезапуске демона будет видно:
Starting zabbix_server. Zabbix 1.8.1 (revision 9702).
**** Enabled features ****
IPMI monitoring: YES

server # started [IPMI Poller]

Заходим в веб-интерфейс, и на вкладке «Configuration -> Hosts» создаём новый хост.
Параметры DNS name и IP address в принципе не важны, но лучше их указать, так как, скорее всего, будут использоваться и другие средства мониторинга, например zabbix-agent.
Устанавливаем галочку на пункт «Use IPMI» и заполняем появившиеся поля согласно настройкам, прописанным через ipmitool:
Создание хоста
Следующим шагом будет создание элементов для отображения. Чтобы получить список доступных для отображения сенсоров, воспользуемся всё тем же ipmitool:
ipmitool> sdr
BB +1.1V IOH | 1.09 Volts | ok
BB +1.1V P1 Vccp | 0.96 Volts | ok
BB +1.1V P2 Vccp | 0.94 Volts | ok


Здесь первое поле — имя сенсора, второе — значение.
Заносим это в конфигурацию элемента:
Создание сенсора

  • Поле «Type» — выбираем IPMI Sensor
  • Поле «IPMI sensor» — записываем имя сенсора, как оно быо указано в sdr.
  • Поле «Key» — любой уникальный ключ для записи в БД.

Заполняем подобным образом все интересующие сенсоры и получаем примерно такую картинку:
Создание сенсора

А при переходе в «Monitoring -> Latest data» — значения сенсоров.
Дальше с этими данными можно делать практически всё, что угодно: рисовать графики, создавать триггеры на оповещение, строить отчёты по SLA и многое другое из того, что умеет Zabbix.
Например, у меня получились такие шаблоны:
Для RMM2
Для RMM3

Приятного мониторинга!

Данная статья ни в коей мере не является Definitive Guide, скорее личным представлением предмета. Соответственно, возможны ошибки. Буду рад, если хабрасообщество укажет на них.
Tags:intelrmmмониторингzabbixipmi
Hubs: Lumber room
+8
2.7k 26
Comments 12

Popular right now