Ошибка уведомления Nagios 4.4.12: (Нет вывода на stdout) stderr при проверке аппаратного обеспечения ESXi

Вопрос или проблема

Извините, но я новичок в 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). Это означает, что предоставленные учетные данные либо неверны, либо у пользователя нет необходимых разрешений для доступа к ресурсам.

Основные ошибки, которые нужно решить:

  1. Проблема с учетными данными (логин/пароль).
  2. Неправильные разрешения для пользователя.

Шаги по устранению неполадок

  1. Проверка учетных данных:

    • Убедитесь, что учетные данные (имя пользователя и пароль), используемые в скрипте check_esxi_hardware.py, корректны. Если вы используете переменные окружения для их хранения, проверьте, что они правильно настроены и передаются в скрипт.
    • Попробуйте выполнить команду вручную через консоль с теми же учетными данными, чтобы удостовериться в их корректности:
      /usr/local/nagios/libexec/check_esxi_hardware.py --username <your_username> --password <your_password>
  2. Разрешения пользователя:

    • Проверьте настройки учетной записи в ESXi. Убедитесь, что пользователю, использующемуся в скрипте, даны соответствующие права доступа. Он должен иметь права на чтение состояния оборудования.
    • Также стоит рассмотреть возможность использования роли с минимально необходимыми разрешениями для повышения безопасности.
  3. Обновление и настройки библиотеки pywbem:

    • Судя по ошибке AttributeError, у вас может быть проблема с версией библиотеки pywbem. Попробуйте обновить библиотеку до последней версии:
      pip install --upgrade pywbem
    • Убедитесь, что у вас установлена необходимая версия Python (вы используете Python 3.10), и что все зависимости библиотеки pywbem также установлены.
  4. Логирование и отладка:

    • Активируйте более подробное логирование в скрипте, чтобы понять, на каком этапе возникает ошибка:
      import logging
      logging.basicConfig(level=logging.DEBUG)
    • Запустите скрипт и изучите логи, чтобы определить, где именно происходит сбой.
  5. Проверка конфигурации Nagios:

    • Убедитесь, что команда уведомления notify-host-by-chat и notify-host-by-email исправно работают. Для этого выполните команды вручную и проверьте корректность их работы без ошибок.

Заключение

Эти шаги помогут вам определить и устранить основные источники неполадок, связанных с уведомлением WARNING по состоянию оборудования ESXi в Nagios. Следуя предложенным рекомендациям, вы сможете наладить работу скрипта и обеспечить корректное получение данных о состоянии хостов. Если проблема сохраняется, пожалуйста, предоставьте больше информации о конфигурации и используемых настройках для дальнейшей отладки.

Не стесняйтесь обращаться за помощью, если возникнут дополнительные вопросы!

Оцените материал
Добавить комментарий

Капча загружается...