Nagios 插件 CHECK_NRPE 接收标头下溢

Nagios 插件 CHECK_NRPE 接收标头下溢

我在 LAN 上运行 Nagios Core 服务器。我在网络外部有 5 台 Windows 机器,我通过 5 个不同端口上的 5 个 ssh 隧道与它们通信,监听 5 个自定义 NSClient++ 应用程序。此配置下一切运行良好,但我注意到 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)

我不确定我在这里错过了什么,但它看起来像是一个依赖项或一个包。Google-fu 在这方面失败了。

答案1

1.测试NRPE连接

您可以通过 NRPE 测试 Windows 和 Nagios 之间的连接,如下所示:

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

如果您没有向 check_nrpe 传递任何参数,服务器(Windows 客户端)将以其版本号作为响应。

2. 测试你的命令

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

如果您的命令返回良好的结果,您可以从 nagios 服务器进行测试,无需参数:

# ./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 中启用此功能。

相关内容