NRPE:“CHECK_NRPE:从守护进程接收数据时出错。”GUI 中出现错误,但检查可以从终端进行,可能是什么原因造成的?

NRPE:“CHECK_NRPE:从守护进程接收数据时出错。”GUI 中出现错误,但检查可以从终端进行,可能是什么原因造成的?

我正在使用 NRPE 监控一些 Linux 服务器,大多数检查都正常。实际上,唯一不起作用的检查是。从 Nagios 服务器终端check_disk运行远程:check_disk

[root@nagios]# /usr/lib64/nagios/plugins/check_nrpe -H 10.200.X.X -c check_disk -a '-w 20% -c 10% /'
DISK OK - free space: / 271971 MB (97% inode=99%);| /=8321MB;236233;265762;0;295292

check_disk从受监控服务器的终端运行本地:

[root@Monitored ~]# /usr/lib64/nagios/plugins/check_nrpe -H 127.0.0.1 -c check_disk -a '-w 20% -c 10% /'
DISK OK - free space: / 271971 MB (97% inode=99%);| /=8321MB;236233;265762;0;295292

check_disk命令在它检查的每个服务器上都返回错误"CHECK_NRPE: Error receiving data from daemon",这使我相信这是服务或命令的编写方式存在问题,因此它们在这里:来自文件的命令/etc/nagios/nrpe.cfg

[root@Monitored ~]# grep disk /etc/nagios/nrpe.cfg 
command[check_local_disk]=sudo /usr/lib64/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$

来自文件的命令/etc/nagios/commands.cfg

# 'check_local_disk' command definition
define command{
        command_name    check_local_disk
        command_line    $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
        }

来自文件的服务services.cfg

define service{
   servicegroups        Basic Functionality
   hostgroup_name       db_hosts,vm_hosts,linux_hosts
   host_name            localhost
   service_description  Check free disk space /
   check_command        check_nrpe!check_local_disk!20%!10%!/
   use                  generic-service
}

这是命令定义check_nrpe

define command{
        command_name    check_nrpe
        command_line    /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

/var/log/messages以下是受监控服务器上有关 NRPE 的信息:

Jun 10 12:57:01 virt2 nrpe[755]: INFO: SSL/TLS initialized. All network traffic will be encrypted.
Jun 10 12:57:01 virt2 nrpe[756]: Starting up daemon
Jun 10 12:57:01 virt2 nrpe[756]: Server listening on 0.0.0.0 port 5666.
Jun 10 12:57:01 virt2 nrpe[756]: Server listening on :: port 5666.
Jun 10 12:57:01 virt2 nrpe[756]: Warning: Daemon is configured to accept command arguments from clients!
Jun 10 12:57:01 virt2 nrpe[756]: Listening for connections on port 0
Jun 10 12:57:01 virt2 nrpe[756]: Allowing connections from: 127.0.0.1,10.200.X.X

您知道如何解决这个问题吗?提前致谢

答案1

您向我们展示的数据是不自洽的。

在上nagios,您可以显示自己通过使用 check_nrpe 调用服务器上的检查,monitored如下所示:

[root@nagios]# /usr/lib64/nagios/plugins/check_nrpe -H 10.200.XX-c 检查磁盘-a'-w 20%-c 10%/'

但当你向我们展示monitorednrpe.cfg文件时,检查已经定义用不同的名字

命令[检查本地磁盘]=sudo /usr/lib64/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$

(我很抱歉格式不对,但我希望能够突出显示,而不是等宽字体)。在我看来,参数的顺序也是错误的,但我并不是允许传递参数的 nrpe 配置方面的专家。

无论如何,的-c foo参数必须与中的check_nrpe相匹配,但事实并非如此。这只能意味着command[foo]nrpe.cfg任何一个你向我们展示的东西并非如此,或者您证明您可以check_nrpe对错误的服务器进行调用。

编辑:我想我已经相当清楚如何尝试解决它了。你说 GUI 无法正确运行检查。好的。所以你说得对,正常的下一步是从命令行运行它,但对同一个客户进行同样的检查非常重要。您已经向我们展示了客户的nrpe.cfg,因此假设客户确实10.200.X.X,从服务器向我们展示结果

[root@nagios]# /usr/lib64/nagios/plugins/check_nrpe -H 10.200.X.X -c check_local_disk -a '-w 20% -c 10% /'

check_nrpe查看服务器文件中的条目也很有用commands.cfg,只是为了确认所有内容都正确。我们现在将尝试执行服务器正在执行的操作,因此如果上述命令失败,我们可以调试并修复失败。如果成功,我们必须更深入地研究。

相关内容