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

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 шаблон для мониторинга сервиса 1C Enterprise 8.3

Написал простой шаблон для мониторинга сервиса 1С. Всего один элемент данных и один триггер. Проверяю статус сервиса Агент сервера 1С:Предприятия 8.3 (x86-64).

Теги

Zabbix — срок действия SSL сертификата (2)

Сегодня напишем скрипт для мониторинга срока действия SSL сертификатов наших сайтов. Этот мониторинг пригодится многим. Системным администраторам в крупных компаниях, чтобы не пропустить момент перевыпуска сертификатов. Особенно, если количество сайтов — сотни. Владельцам собственных сайтов. Многие пользуются сервисом Let's Encrypt, особенностью сертификатов которого является короткий срок жизни. Если автоматика обновления сертификатов выйдет из строя, то мониторинг SSL сертификатов поможет выявить проблему до того, как она себя проявит.

Теги

Zabbix шаблон для мониторинга RAID контроллеров LSI, 4-я версия

Сижу я вечером дома после работы, вдруг, понимаю как вытащить данные о температуре и ошибках физических дисков контроллеров LSI.