Я старею Unable to read output
сообщение из этого теста NRPE. Я могу запустить другие тесты на этой машине, и я могу su - nagios -c "<path to check_aacraid>"
при локальном запуске и работает.
Смотря на /var/log/messages
показывает, что процесс открыт и запущен - он просто не возвращает никаких сообщений, которые NRPE может переварить.
Что еще я могу использовать для отладки этого? Я установил debug = 1
в nrpe.cfg
и у меня есть нагиос sudo
так как NOPASSWD:ALL
. (да, это большая дыра в безопасности .. Я уже отчаянно пытаюсь заставить эту работу работать)
Обе системы (сервер nagios и клиент NRPE) являются CentOS 6.2.
РЕДАКТИРОВАТЬ:
Для тестирования с сервера Nagios я использовал командную строку:
/usr/local/nagios/libexec/check_nrpe -H <IP of nrpe machine> -c check_aacraid
Это сработает, если я попробую check_users
или check_total_procs
(значения по умолчанию, которые поставляются с установкой NRPE). Это также сработает, если я переименую одну из этих команд в stuff
и передать это с -c
к check_nrpe
. Это заставляет меня думать, что проблема не в серверных nagios.
На стороне клиента единственное изменение, которое я внес в NRPE.CFG
(вне тестирования - см. выше) - добавить строку:
command[check_aacraid]=/usr/local/sbin/check-aacraid.py
В остальном все по умолчанию.
Я могу выполнить эту команду, войдя в систему как nagios
а также через su - nagios -c "cmd"
.
Судо в скрипте, вероятно, не работает, потому что оно не на tty при запуске NRPE. Проверьте / etc / sudoers на наличие:
Default requiretty
И прокомментируйте это.
Я бы сказал, что PATH
в вашей интерактивной оболочке красиво и долго и включает в себя все, что check_aacraid
нуждается, но НРПЭ PATH
коротко и мило, и в нем не хватает того, что вам нужно. Выберите свой любимый метод улучшения PATH
для check_aacraid
, и скорее всего, все ваши проблемы исчезнут.
Кроме того, общий метод диагностики NRPE заключается в следующем: strace -f -s 1024
PID сервера NRPE, и просто посмотрите, что произойдет. Обычно довольно очевидно, что идет не так.
«Проблема» - это SELinux. Когда я «echo 0 / selinux / enforce», плагин работает. Теперь выясним, как работать с системой, а не вокруг нее.
Вероятно, вы уже пробовали это, но я столкнулся с той же проблемой с другим плагином. Решение с моей стороны заключалось в том, чтобы добавить эту строку в nrpe.cnf
:
command[check_aacraid]=sudo /usr/local/sbin/check-aacraid.py
в sudoers
файл:
nagios ALL=NOPASSWD:/usr/local/bin/check-aacraid.py
В дополнение к комментированию из Default requiretty
то, что вы упомянули, уже было сделано.