我有一项Nagios检查以报告Puppet Run成功/失败。支票在本地运行良好:
$ sudo -u nrpe /usr/local/nagios/libexec/check_puppet_agent
I AM: nrpe
CRITICAL: Puppet daemon not running or something wrong with process
我正在与whoami
的输出相呼应,以实现调试目的。然后,我得到关键信息,因为木偶服务停止了,那很好。到目前为止,一切都很好。
但是,当我从Nagios服务器远程运行支票时,我会得到:
$ /usr/local/nagios/libexec/check_nrpe -H MY-HOST -c check_puppet_agent
I AM: nrpe
UNKNOWN: last_run_summary.yaml not found, not readable
阅读文件系统似乎存在一些问题。远程运行时,NRPE无法读取/var/lib/puppet
目录,但是nrpe
用户可以在本地读取它。为什么是这样?什么可能导致此错误?该检查应该作为NRPE用户运行,那么为什么不能读取目录?
好的,显然问题是selinux
。它阻止进程nrpe
访问/var/lib/puppet
目录,因此我不得不使用具有某些规则的Selinux模块来允许NRPE运行此检查。