Nagios插件CHECK_NRPE接收标题下溢

我在局域网上运行Nagios Core服务器。 我在networking外部有5台Windows机器,通过5个不同端口上的5个ssh隧道来监听5个自定义NSClient ++应用程序。 所有的这个configuration都运行良好,但是我注意到check_nt MEMUSE给了我们奇数,实际上我们所需要的只是实际的物理内存。

经过多次挖掘,我发现了check_nrpe,看起来它会给我我正在寻找的数据。

我把下面的命令放在commands.cfg中:

define command { command_name CheckWindowsPhysicalMem command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5666 -c CheckMEM -a MaxWarn=$ARG1$% MaxCrit=$ARG2$% ShowAll=long type=physical } 

我把以下内容放在我的windows.cfg中

 define service{ use generic-service host_name HOSTNAME service_description Physical Memory check_command CheckWindowsPhysicalMem!80!90 } 

我重新启动了nagios和nagios-nrpe-server,现在我得到这个错误:

CHECK_NRPE: Receive header underflow - only 0 bytes received (4 expected)

我不知道我在这里错过了什么,但如果看起来像一个依赖或一个包。 谷歌 – 福在这一个失去了。

1.testingNRPE连接

你可以通过NRPEtesting你的窗口和Nagios之间的连接,如下所示:

 ./check_nrpe -H Server I (0.4.3.143 2015-04-29) seem to be doing fine... 

如果你没有传递任何参数给你的check_nrpe,服务器(windows客户端)将用他的版本号来回应。

2.testing你的命令

在您的Windows客户端上,您可以使用nscp test在控制台上本地testing您的命令。

如果你的命令返回的结果很好,你可以从你的nagios服务器上进行testing,没有参数:

 # ./check_nrpe -H Server -c alias_cpu OK: CPU load is ok.|'total 5m'=1%;80;90 'total 1m'=1%;80;90 'total 5s'=2%;80;90 

3. NRPE的论点

默认情况下,出于安全考虑,NRPE不允许从Nagios向远程客户端发送参数。 因此,您必须在每个Windows工作站的nsclient.ini中启用它。