说到点子上了。
NRPE.CFG修改:
将 Nagios 主机添加到允许:
允许的主机=127.0.0.1,192.168.1.10
删除前面的 #command_prefix=/usr/bin/sudo
之后我重新加载了该服务。
/etc/init.d/nagios-nrpe-server重启
我也编辑了/etc/sudoers
# 用户权限规范 根 ALL=(全部:全部) 全部 nagios ALL=NOPASSWD: /usr/lib/nagios/plugins/
跑步:
$./check_users-w 5-c 10 用户正常 - 当前有 1 位用户登录 |users=1;5;10;0
有效,我得到了结果
跑步:
su nagios -c "./check_users -c 2 -w 2"
毫无结果。
从 Nagios 主机到新的远程系统我可以运行:
check_nrpe -H 192.168.1.20
我得到了NPRE v2.12
结果。
我已检查过 Nagios 是否是插件文件夹的所有者,但仍然不行。
任何建议都会有帮助。
(是的,我已经在 Google 上搜索过并且阅读了 10-20 个帖子但还是不行)
答案1
在我看来,您的文件中没有“requiretty”行sudoers
,请确保其中有以下行:
Defaults:nagios !requiretty
它的意思是 nagios 用户(仅)不需要有 tty 来运行命令,这就是我怀疑您的命令失败的原因。
如果您不确定哪个用户运行 nagios,您可以在配置文件中进行检查,该文件通常位于/etc/nagios/nrpe.cfg
。
如果我遇到过这个问题,我首先要确保 nagios 用户能够成功运行该命令,为了做到这一点,我将通过编辑以下行来启用 nagios 用户登录机器的能力/etc/passwd
:
nagios:x:113:120::/var/lib/nagios:/bin/false
到:
nagios:x:113:120::/var/lib/nagios:/bin/bash
然后,我必须su - nagios
继续进行故障排除,解决问题后,我会将此行改回/bin/false
。
答案2
请检查核聚变重新启动服务时,进程会被终止。我以前也遇到过同样的问题。使用:
ps -ef | grep nrpe
检查该进程是否仍在运行,然后:
kill -9 `ps -ef | grep nrpe | awk '{print $2}'`
命令手动将其杀死。
答案3
您是否能够使用 sudo 成功执行 check_users(作为运行 nrpe 的用户)?即。
sudo ./check_users -c 2 -w 2
CentOS 的 sudoers 文件顶部是否有 requiretty?如果是,那很可能就是罪魁祸首。您可以尝试暂时全局禁用它,或者仅为 nagios 用户禁用它。
答案4
可能是 nagios 用户的问题。请检查 nagios 用户是否有权执行插件。
插件权限应如下:
rwxr-xr-x 1 nagios nagios 163831 May 30 2016 check_users