我刚刚通过 Chef 在 CentOS 7 上安装了 NRPE。这是我在所有 CentOS 6 服务器上使用的相同方法 - 并且在那里有效。NRPE 启动了,但出现以下错误:
Jun 13 15:12:21 myserver nrpe[3667]: Could not open config directory '/etc/nagios/nrpe.d' for reading.
Jun 13 15:12:21 myserver nrpe[3667]: Continuing with errors...
所有服务器配置都在 /etc/nagios/nrpe.d 下。这是我的 cfg:
pid_file=/var/run/nrpe.pid
server_port=5666
nrpe_user=nagios
nrpe_group=nagios
dont_blame_nrpe=0
debug=0
command_timeout=60
allowed_hosts=127.0.0.1,192.168.1.14
include_dir=/etc/nagios/nrpe.d
以下是/etc/nagios/nrpe.d 的权限:
# ls -atlr /etc/nagios/
-rwxrwxrwx. 1 nagios nagios 248 Jun 13 14:45 nrpe.cfg
drwxrwxrwx. 2 nagios nagios 89 Jun 13 14:51 nrpe.d
我怎样才能让 NRPE 读取配置目录中的配置?
答案1
我也遇到了同样的问题。请参考以下步骤进行解决。
- 使用命令或命令检查文件的权限
/etc/nagios/nrpe.cfg
,然后检查 SELinux 状态。如果显示“已禁用”,则没有问题。如果显示“允许”,则没有问题,但如果显示“强制”,则执行以下步骤。sestatus
getenforce
如果您需要 SELinux 处于强制模式,则使用以下命令检查 SELinux 策略文件上下文,
# pwd /etc/nagios # ls -Z -rw-r--r--. root root system_u:object_r:nrpe_etc_t:s0 nrpe.cfg
如果文件上下文不同,则将其更改为nrpe_etc_t使用以下命令。
# semanage fcontext -a -t nrpe_etc_t "/etc/nagios/nrpe.cfg" # restorecon -R -v /etc/nagios/nrpe.cfg
我在 CentOS 7 上进行了同样的测试。
答案2
在nrpe.cfg中打开debug,然后重启服务,如果看到类似“nrpe can not read configure dir /etc/nagios/nrpe.d”的错误信息,说明是selinux导致的问题。
您可以检查并关闭selinux(如果没有安全问题)。
获得力量
执行
设置强制 0
获得力量
宽容
然后使用“service nrpe restart”重启nrpe。现在它应该可以工作了。
答案3
我建议您也查看 /etc/nagios 目录的权限和所有权。
您还可以 su 到 nagios 用户并开始向上移动(cd)目录树来确定权限中断的位置。