NRPE:“CHECK_NRPE:从守护进程接收数据时出错”在gui中出现错误,但从terminal检查工作,可能是什么原因?

我使用NRPE来监视一些Linux服务器,大部分检查都在工作。 实际上,唯一不起作用的检查是check_disk 。 从Nagios服务器terminal运行远程check_disk ,:

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

从受监控服务器的terminal运行本地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"出错"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.XX 

你有什么想法如何解决这个问题? 提前致谢

您向我们展示的数据是自相矛盾的。

nagios ,你显示自己调用check_nrpe monitored的服务器上的检查,如下所示:

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

但是当您向我们显示monitorednrpe.cfg文件时,检查nrpe.cfg 不同的名称定义:

命令[ check_local_disk ] = sudo / usr / lib64 / nagios / plugins / check_disk -w $ ARG1 $ -c $ ARG2 $ -p $ ARG3 $

(我对缺less格式表示歉意,但我希望能够突出显示超过我想要的等宽字体)。 在我看来,参数的顺序也是错误的,但我不是专家的nrpeconfiguration,允许parameter passing。

无论如何, check_nrpe-c foo参数必须与nrpe.cfg中的command[foo]匹配,而不是。 这只能意味着你向我们展示的东西不是这样, 或者你certificate你可以在错误的服务器上调用check_nrpe

编辑 :我想我已经相当清楚,试图解决它。 你说GUI不能正确运行检查。 好。 所以你是正确的,下一步的正常工作是从命令行运行它, 但是对同一个客户端运行相同的检查是非常重要的 。 你向我们展示了客户端的nrpe.cfg假设客户端真的是10.200.XX ,从服务器向我们展示了结果

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

从服务器的commands.cfg文件中查看check_nrpe条目也是很有用的,只是为了确认所有的行。 现在我们将尝试执行服务器的操作,所以如果上面的命令失败了,我们可以debugging和修复这个失败。 如果成功了,我们必须更加深入一点。