Ubuntu 12.04 上的 Nagios NRPE“无法读取输出”

Ubuntu 12.04 上的 Nagios NRPE“无法读取输出”

说到点子上了。

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

相关内容