Вопрос или проблема
Извините, но я новичок в Nagios. У нас возникла проблема с Nagios v4.4.12, когда уведомление о ПРЕДУПРЕЖДЕНИИ продолжает появляться для наших хостов ESXi.
Ниже информация о статусе проверки оборудования ESXi:
Текущий статус: ПРЕДУПРЕЖДЕНИЕ (в течение 3д 22ч 36м 47с)
Информация о статусе: (Нет вывода на stdout) stderr: Ошибка трассировки (последний вызов был последним):
Файл "/usr/local/nagios/libexec/check_esxi_hardware.py", строка 773, в <module>
c=wbemclient.EnumerateInstances('CIM_Chassis')
Файл "/usr/local/lib/python3.10/dist-packages/pywbem/_cim_operations.py", строка 3058, в EnumerateInstances
result = self._imethodcall(
Файл "/usr/local/lib/python3.10/dist-packages/pywbem/_cim_operations.py", строка 1955, в _imethodcall
reply_data, self._last_server_response_time = wbem_request(
Файл "/usr/local/lib/python3.10/dist-packages/pywbem/_cim_http.py", строка 568, в wbem_request
raise AuthError(msg, conn_id=conn.conn_id)
pywbem._exceptions.AuthError: Сервер WBEM вернул статус HTTP 401 (Неавторизован). Это, вероятно, проблема с userid/password, но для серверов, которые реализуют контроль доступа к ресурсам, это также может быть проблемой с правами userid.
Во время обработки вышеуказанного исключения возникло другое исключение:
Ошибка трассировки (последний вызов был последним):
Файл "/usr/local/nagios/libexec/check_esxi_hardware.py", строка 774, в <module>
except pywbem.cim_operations.CIMError as args:
AttributeError: модуль 'pywbem' не имеет атрибута 'cim_operations'. Вы имели в виду: '_cim_operations'?
Вот вывод команд Уведомлений:
notify-host-by-chat:
/usr/bin/printf "ALERT" | /usr/local/nagios/etc/notify-teams.py "$NOTIFICATIONTYPE$ Уведомление хоста: $HOSTNAME$ в состоянии $HOSTSTATE$" "$NOTIFICATIONTYPE$ Хост: $HOSTNAME$ Состояние: $HOSTSTATE$ Адрес: $HOSTADDRESS$ Информация: $HOSTOUTPUT$ Дата/Время: $LONGDATETIME$" <наш Teams webhook>
notify-host-by-email:
/usr/bin/printf "%b" "***** Nagios *****\n\nТип уведомления: $NOTIFICATIONTYPE$\nХост: $HOSTNAME$\nСостояние: $HOSTSTATE$\nАдрес: $HOSTADDRESS$\nИнформация: $HOSTOUTPUT$\n\nДата/время: $LONGDATETIME$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Уведомление хоста: $HOSTNAME$ в состоянии $HOSTSTATE$ **" $CONTACTEMAIL$
Основываясь на нижней строке ошибки, я пытался найти нужного пользователя, но безуспешно:
pywbem._exceptions.AuthError: Сервер WBEM вернул статус HTTP 401 (Неавторизован). Это, вероятно, проблема с userid/password, но для серверов, которые реализуют контроль доступа к ресурсам, это также может быть проблемой с правами userid.
Сообщите мне, если я могу предоставить что-то из нашей конфигурации, что может помочь, и я буду рад помочь!
Ответ или решение
Решение проблемы уведомлений Nagios 4.4.12: Ошибка при проверке оборудования ESXi
Добрый день!
Судя по вашему описанию проблемы, вы столкнулись с уведомлением о состоянии WARNING на ваших хостах ESXi, и ошибка, возникающая в процессе, указывает на проблемы с авторизацией. Давайте детально разберем вашу ситуацию и возможности решения.
Описание проблемы
Вывод предупреждения указывает на то, что скрипт check_esxi_hardware.py
пытается выполнить запрос к WBEM (Web-Based Enterprise Management), но получает статус 401 (Unauthorized). Это означает, что предоставленные учетные данные либо неверны, либо у пользователя нет необходимых разрешений для доступа к ресурсам.
Основные ошибки, которые нужно решить:
- Проблема с учетными данными (логин/пароль).
- Неправильные разрешения для пользователя.
Шаги по устранению неполадок
-
Проверка учетных данных:
- Убедитесь, что учетные данные (имя пользователя и пароль), используемые в скрипте
check_esxi_hardware.py
, корректны. Если вы используете переменные окружения для их хранения, проверьте, что они правильно настроены и передаются в скрипт. - Попробуйте выполнить команду вручную через консоль с теми же учетными данными, чтобы удостовериться в их корректности:
/usr/local/nagios/libexec/check_esxi_hardware.py --username <your_username> --password <your_password>
- Убедитесь, что учетные данные (имя пользователя и пароль), используемые в скрипте
-
Разрешения пользователя:
- Проверьте настройки учетной записи в ESXi. Убедитесь, что пользователю, использующемуся в скрипте, даны соответствующие права доступа. Он должен иметь права на чтение состояния оборудования.
- Также стоит рассмотреть возможность использования роли с минимально необходимыми разрешениями для повышения безопасности.
-
Обновление и настройки библиотеки pywbem:
- Судя по ошибке
AttributeError
, у вас может быть проблема с версией библиотекиpywbem
. Попробуйте обновить библиотеку до последней версии:pip install --upgrade pywbem
- Убедитесь, что у вас установлена необходимая версия Python (вы используете Python 3.10), и что все зависимости библиотеки
pywbem
также установлены.
- Судя по ошибке
-
Логирование и отладка:
- Активируйте более подробное логирование в скрипте, чтобы понять, на каком этапе возникает ошибка:
import logging logging.basicConfig(level=logging.DEBUG)
- Запустите скрипт и изучите логи, чтобы определить, где именно происходит сбой.
- Активируйте более подробное логирование в скрипте, чтобы понять, на каком этапе возникает ошибка:
-
Проверка конфигурации Nagios:
- Убедитесь, что команда уведомления
notify-host-by-chat
иnotify-host-by-email
исправно работают. Для этого выполните команды вручную и проверьте корректность их работы без ошибок.
- Убедитесь, что команда уведомления
Заключение
Эти шаги помогут вам определить и устранить основные источники неполадок, связанных с уведомлением WARNING по состоянию оборудования ESXi в Nagios. Следуя предложенным рекомендациям, вы сможете наладить работу скрипта и обеспечить корректное получение данных о состоянии хостов. Если проблема сохраняется, пожалуйста, предоставьте больше информации о конфигурации и используемых настройках для дальнейшей отладки.
Не стесняйтесь обращаться за помощью, если возникнут дополнительные вопросы!