我知道这是一个非常常见的错误,RTFM 通常是正确的答案,但是,我认为我已经涵盖了所有显而易见的要点。
NRPE 以 nagios 用户身份运行
当我sudo su - nagios
成为 nagios 用户并从 /etc/nagios/nrpe.conf 复制并粘贴命令时,它运行完美,并按预期生成输出。
当我打开调试时,NRPE插件加载后没有任何记录(服务重新启动时记录了条目)。
发生了什么事?调试日志中肯定应该记录一些内容吗?有没有办法强制进行更详细的日志记录(配置文件中的注释建议不要这样做)。
SELinux 没有记录任何问题。
总的来说,这个脚本很正常,但有一个例外,它使用 sudo 执行命令。nagios 用户已被授予无密码访问执行命令的权限,当我以 nagios 用户身份执行命令时,它就可以正常工作。
更新: 重新配置 sudo 使其不再需要 tty 后,我的检查已通过 SSH 成功运行,并返回了预期结果。但它仍然无法通过 NRPE 运行。
答案1
问题在于 SELinux,至少在 RHEL 上,它阻止 NRPE 服务执行几乎所有操作。
最简单的解决方案是关闭 SELinux,但这当然不是理想的解决方案。唯一的其他解决方案似乎是为 NRPE 编写自己的自定义策略,目前这超出了我的能力范围。