Перейти к основному содержанию

Zabbix — cannot connect to IPMI host: [22] Invalid argument

Zabbix

Сегодня разбираю ошибку в Zabbix, когда он не может получить значения IPMI сенсоров. Всё это выглядит очень занимательно.

Если в Zabbix получать значения сенсоров под пользователем с правами администратора, то всё работает:

zabbix

И через ipmitool сенсоры выводятся:

ipmitool -I lanplus -H servername.domain.local -U 'zabbix' -P'ПАРОЛЬ' -L USER sensor list

Светить пароль администратора в Zabbix небезопасно.

Однако, если мы заводим на сервере пользователя без прав администратора, то картина меняется.

zabbix

Zabbix в некоторых случаях не может получить данные с ошибкой:

cannot connect to IPMI host: [22] Invalid argument

А ipmitool прекрасно справляется с задачей:

ipmitool -I lanplus -H servername.domain.local -U 'zabbix' -P'ПАРОЛЬ' -L USER sensor list

Расследование привело к тому, что проблема в библиотеке OpenIPMI (версии до 2.0.24) в дистрибутивах Debian, Ubuntu, Mint. В этой библиотеке был дефект, связанный с обработкой уровня привилегий при подключении к некоторым устройствам IPMI. 

Исправление было внесено в версии OpenIPMI 2.0.24.

В дистрибутивах Debian/Ubuntu пакеты OpenIPMI скомпилированы без поддержки OpenSSL (--without-openssl). Из-за этого библиотека поддерживает только самый низкий уровень привилегий IPMI — "callback" (1). Когда Zabbix (через OpenIPMI) запрашивает уровень "user" (2), BMC отвечает, что доступен только уровень "callback". Это приводит к ошибке аутентификации.

Утилита ipmitool скомпилирована с поддержкой OpenSSL и может работать с любым уровнем привилегий.

Если нет возможности обновить библиотеку OpenIPMI, можно скомпилировать более старую версию, включив поддержку OpenSSL.

cd /tmp
sudo apt-get build-dep openipmi # Установить зависимости для сборки
apt-get source openipmi
cd openipmi-2* # Перейти в каталог с исходным кодом

Открыть файл debian/rules. Найти строку, начинающуюся с ./configure. Добавить параметр --with-openssl. Удалить или закомментировать параметр --without-openssl, если он есть.

Пример исправленной строки:

CFLAGS="$(CFLAGS)" ./configure --with-openssl --host=$(DEB_HOST_GNU_TYPE) \

Собрать и установить пакеты:

sudo dpkg-buildpackage
cd ..
sudo dpkg -i openipmi*.deb libopenipmi*.deb

Перезапустить Zabbix Server.

sudo systemctl restart zabbix-server

Ссылки

https://support.zabbix.com/browse/ZBX-6139

https://support.zabbix.com/browse/ZBX-6077

Теги

 

Похожие материалы

Zabbix шаблон для мониторинга сервера HP Proliant ML30 Gen9

Делюсь полезным шаблоном для мониторинга сервера  HP Proliant ML30 Gen9. Мониторим по IPMI. Шаблон делал сам. В шаблоне 5 приложений, 35 элементов данных, 7 триггеров и 1 график.

Теги

Zabbix шаблон для мониторинга сервера HPE ProLiant DL560 Gen10

Владимир, один из читателей сайта, прислал Zabbix шаблон для мониторинга сервера HPE ProLiant DL560 Gen10, который он создал на основе одного из моих шаблонов для других моделей серверов. Мониторим по IPMI.

Теги