У меня эта проблема с NRPE, все вещи, которые я нашел в сети, указывают мне на то, что я уже пробовал.
# /usr/local/nagios/plugins/check_nrpe -H nrpeclient
дает
NRPE v2.12
как и ожидалось.
Выполнение команды вручную (как определено в nrpe.cfg для "nrpeclient", дает ожидаемый ответ
nrpe.cfg:
command[check_openmanage]=/usr/lib/nagios/plugins/additional/check_openmanage -s -e -b ctrl_driver=0 bat_charge
"Expected response"
Но если я пытаюсь запустить команду с сервера Nagios, я получаю следующее:
# /usr/local/nagios/plugins/check_nrpe -H comxps -c check_openmanage
NRPE: Unable to read output
Кто-нибудь может подумать о другом месте, где я мог ошибиться? Я сделал то же самое на нескольких других серверах без проблем. Единственное отличие, которое я могу придумать, заключается в том, что этот блок основан на RHEL 5, тогда как остальные основаны на RHEL 4.
Те два бита выше, которые я протестировал, - это то, что большинство людей, кажется, предлагают, когда у людей возникла эта проблема.
Я должен упомянуть, что я получаю странную ошибку в журналах при перезапуске nrpe
:
nrpe[14534]: Unable to open config file '/usr/local/nagios/etc/nrpe.cfg' for reading
nrpe[14534]: Continuing with errors...
nrpe[14535]: Starting up daemon
nrpe[14535]: Warning: Daemon is configured to accept command arguments from clients!
nrpe[14535]: Listening for connections on port 5666
nrpe[14535]: Allowing connections from: bodbck,combck,nam-bck
Несмотря на то, что он просто читает этот /usr/local/nagios/etc/nrpe.cfg
файл, чтобы понять, о чем идет речь, в дальнейшем.
Ответы:
У вас есть проблема с правами.
Измените команду на:
(добавить sudo)
Затем добавьте пользователя nagios в sudoers:
Или вы можете просто chmod файл ... Это тоже работает.
Если вы используете CentOS, Red Hat, Scientific или Fedora, обязательно отключите их
Defaults requiretty
в файле sudoers.источник
Краткий ответ: если вы используете плагин Bash, убедитесь, что у вас есть шебанг с указанием, какой интерпретатор следует использовать:
#!/bin/bash
Я столкнулся с той же проблемой с плагином Nagios, который написал сам. Сценарий выполнялся, как и ожидалось, при локальном запуске, даже при запуске от имени пользователя
nagios
с использованием следующего оператора:Но удаленный запуск с использованием NRPE с сервера Nagios3 не удался:
Я , наконец , решил это дело, добавив притон в моем сценарии, как оказалось , что запуск сценария через NRPE не использовал тот же интерпретатор , как при работе через
sudo sudo -s -u nagios
.источник
#!/bin/bash -el
eval "$(rbenv init -)"
/usr/lib/nagios/plugins/check_something $@
В моем случае проблема была просто - пользователь nagios не смог выполнить скрипт. После chmod это начало работать. Судо не обязательно. Это даже зло :)
источник
check_nrpe получал «NRPE: Невозможно прочитать вывод», несмотря на то, что проверка работала локально, потому что используемый мной плагин не работал с SELinux. Отключите его и обязательно удалите контексты файла:
источник
Проверьте пути, разрешения, selinux, iptables.
У меня была проблема с поиском в клиенте: nrpe.cfg, дважды проверьте путь команды к имени плагина check_ *. Они могут сбивать с толку, (lib / local) (libexec / plugins) в качестве имени пути. Я по ошибке дернул и вставил пути из закомментированного предварительно упакованного файла nrpe cfg для создания команд. Плагин make install или yum install помещает их в директорию difft.
Командный: / usr / local / nagios / libexec / check_disk
против
realpath: / usr / lib / nagios / plugins / check_disk
С сервера я смог подтвердить, что это не проблема брандмауэра, он мог подключиться к порту 5666, мог запустить общий check_nrpe и получить статус в качестве возвращаемого значения. Может выполнять команды локально, но nrpe указал неверный путь на клиенте в nrpe.cfg.
источник
В моем случае только один плагин вышел из строя, а несколько других работали нормально. Это оказалось локальной проблемой.
Плагин был,
check_mem.sh
и он выполнил grep дляMem
на выходеfree
. Но LOCALE всей системы возвратилSpeicher
(немецкий) вместоMem
, так что все полученные значения были пустыми строками.источник
Это проблема с правами, просто дайте право выполнения скрипта, и все будет в порядке:
Вот пример: До / Удаленный хост :
Сервер NRPE :
После: Удаленный хост :
Проблема решена.
источник
В моем случае отслеживаемый файл журнала принадлежал root: adm, поэтому добавление пользователя nagios в группу adm привело к успешному выполнению команды check_log, но только при непосредственном выполнении на отслеживаемых хостах. Он продолжал терпеть неудачу, используя check_nrpe на сервере Nagios, пока я не перезапустил службу nagios-nrpe-server на отслеживаемых хостах, например
Очевидно, что перезапуск службы был необходим для того, чтобы изменение разрешений вступило в силу для NRPE, но мне потребовалось некоторое время, чтобы понять это.
источник
В случае пользовательских плагинов NRPE обязательно распечатайте некоторые выходные данные вместе со значением выхода. Если в сценарии нет выходных данных, NRPE выдаст сообщение «NRPE не может прочитать выходные данные» . Вы можете включить отладку в nrpe.cfg и наблюдать за этой ошибкой.
источник
В моем случае проблемы были связаны с selinux (при использовании RHEL 6.5 selinux настроен на принудительное выполнение).
Установка nagios-plugins- * через yum создаст ваши файлы плагинов в / usr / lib64 / nagios / plugins. Если вы проверите fcontext в этих файлах подключаемых модулей (ls -lZ), вы увидите, что для файлов установлен тип контекста nagios_system_plugin_exec_t, то есть тот тип контекста, который ожидает check_nrpe.
В моем случае я создал собственный скрипт "check_mem.sh", используя "vi". Полученный файл имел тип контекста, установленный на «lib_t». Это заставляло nrpe выводить «NRPE: Невозможно прочитать вывод».
Изменение контекста файла на «nagios_system_plugin_exec_t» решило проблему:
chcon -t nagios_system_plugin_exec_t /usr/lib64/nagios/plugins/check_mem.sh
Обычное устранение неполадок в selinux также указало бы мне на эту проблему (проверка /var/log/audit/audit.log), но, конечно, это было последнее, о чем я подумал
Редактировать: chcon просто временно меняет контекст. Чтобы постоянно его менять
semanage fcontext -a -t nagios_system_plugin_exec_t /usr/lib64/nagios/plugins/check_mem.sh restorecon -vF /usr/lib64/nagios/plugins/check_mem.sh
источник
Возможно, вы не установили свои плагины Nagios, NRPE не может их найти или получить к ним доступ.
Мне никогда не приходилось добавлять свои команды в Sudoers. Убедитесь, что команды принадлежат пользователю Nagios и доступны для чтения.
источник
Я думаю, что вы должны добавить плагины в ваш локальный каталог
/usr/lib64/nagios/plugins/*
. У меня была та же проблема, что и у вас, и я могу решить ее с помощью этого решения.источник
У меня была проблема, которую ты пишешь. Тест, который я провел, был от Perl. Поместите эту строку в файл,
/etc/nagios/nrpe.cfg
чтобы он работал.источник
Есть действительно хорошая статья, которая охватывает всю установку и настройку агента NRPE со многими примерами check_commands, я использую эту статью, когда мне когда-либо нужно установить NRPE на новый сервер. Более того, в конце страницы вы можете найти классный скрипт, который автоматически устанавливает и настраивает NRPE для вас (в зависимости от установленных вами переменных), статью можно найти здесь :
источник
Обычно это происходит, когда сервер NRPE запускается с пользователем nrpe вместо nagios.
Изменение
nrpe_user
значения в/etc/nagios/nrpe.cfg
файл nagios должно решить вашу проблему.Также
nrpe_group
можно изменить при необходимости.источник
Еще одна вещь, которую нужно проверить, - это то, что если ваша команда использует ее
sudo -u <another user>
для выполнения,libexec
каталог (и каталоги над ним) должен быть доступен для чтения пользователю, которому он был назначен.Например, если ваша команда:
Пользователь tomcat должен иметь доступ к этому файлу.
Один из способов исправить это будет:
Замена последней части на то, где живут ваши исполняемые файлы
источник
У меня была та же проблема, и мне удалось решить ее, убив процесс nagios (на контролируемой машине):
После этого все прошло хорошо.
источник
Просто была эта проблема во FreeBSD. После того, как я в течение часа ударился головой о стену, я понял, что проблема в том, что
/usr/local/nagios/etc/nrpe.cfg
он указывает на неправильное место для Судо.Чтобы найти правильное местоположение, на которое нужно указать команду sudo, выполните:
# whereis sudo
Затем я изменил command_prefix в nrpe.cfg из:
command_prefix=/usr/local/sudo
чтобы:
command_prefix=/usr/local/bin/sudo
Затем побежал
service nrpe restart
и проблема была решена.Может быть аналогичная проблема в других операционных системах, просто еще одна вещь, чтобы проверить, если вы проверили все другие возможные проблемы с разрешениями, и вы все еще сталкивались с этой проблемой.
источник
Отсутствуют плагины Nagios на клиенте nrpe.
Не используйте yum install nagios-plugins (nagios-plugins-2.0.3-1.el6.x86_64). Он не устанавливает все плагины. Загрузите nagios-plugins-1.4.11.tar.gz и следуйте инструкциям в этом документе.
http://www.thegeekstuff.com/2008/06/how-to-monitor-remote-linux-host-using-nagios-30/
источник
У меня была эта проблема и я решил отключить selinux
Сетенфорс 0
источник