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