У меня проблема с nagios и NRPE, и я не могу ее решить.
Я уже пробовал.
# grep "nrpe_user=" /etc/nagios/nrpe.cfg
nrpe_user=nrpe
NRPE работает от имени пользователя nrpe. Итак, я добавил эти строки в visudo:
Defaults:nrpe !requiretty
nrpe ALL=(ALL) NOPASSWD: /usr/lib64/nagios/plugins/check_jboss_files
Я отредактировал свой nagios nrpe.cfg:
command[check_jboss_files]=sudo /usr/lib64/nagios/plugins/check_jboss_files
Но если я попытаюсь запустить команду с сервера Nagios, я получу следующее:
# /usr/lib64/nagios/plugins/check_nrpe -H 1.2.3.4 -c check_jboss_files
NRPE: Unable to read output
Сценарий работал должным образом при запуске локально, даже при запуске от имени пользователя nrpe:
# sudo sudo -s -u nrpe
bash-4.2$ sudo /usr/lib64/nagios/plugins/check_jboss_files
JBOSS Files: 2049
WARNING - JBOSS Files: 2049
Без sudo сценарий работает на сервере nagios, но для получения хороших результатов должен работать с sudo. Что я упустил? Я, наверное, все перепробовал и буду благодарен за любую помощь.
Недавно я столкнулся с очень похожей ситуацией, и решением было настроить selinux для разрешения доступа sudo.
следить этот статью, и вы узнаете, что делать.
Для меня это сработало на CentOS 7.4:
yum install -y setroubleshoot-server
Мое нарушение:
$ grep -m 1 type=AVC.*sudo /var/log/audit/audit.log | audit2why
type=AVC msg=audit(1525359549.889:211763): avc: denied { getattr } for pid=127488 comm="check_d" path="/usr/bin/sudo" dev="dm-0" ino=67120340 scontext=system_u:system_r:nrpe_t:s0 tcontext=system_u:object_r:sudo_exec_t:s0 tclass=file
Was caused by:
The boolean nagios_run_sudo was set incorrectly.
Description:
Allow nagios to run sudo
Allow access by executing:
# setsebool -P nagios_run_sudo 1
Выполнение предложенной команды решило мою проблему.