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

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 шаблон для мониторинга сервера HPE Proliant DL380 Gen10

Делюсь полезным шаблоном для мониторинга сервера  HPE Proliant DL380 Gen10. Мониторим по IPMI. Шаблон делал сам. В шаблоне 8 приложений, 113 элементов данных, 56 триггеров и 4 графика.

Теги

Zabbix шаблон для мониторинга сервера Supermicro X11DPH-T

Делюсь полезным шаблоном для мониторинга сервера Supermicro X11DPH-T.  Если быть более точным, то у сервера нет имени, у него материнка X11DPH-T и корпус 4 юнита. Только что собрал. В шаблоне 5 приложений, 59 элементов данных, 170 триггеров и 5 графиков. Мониторим по IPMI.