check_nrpe ssl 无法完成握手,在主服务器和客户端服务器中单独运行良好

check_nrpe ssl 无法完成握手,在主服务器和客户端服务器中单独运行良好

当我尝试执行以下命令时,主服务器中出现此 check_nrpe ssl 无法完成握手错误。

/usr/local/nagios/libexec/check_nrpe -H 10.192.122.234
10.192.122.234 --> nagios client machine

但是当我使用

/usr/local/nagios/libexec/check_nrpe -H localhost

它给出了正确的结果,即 nrpe 版本,即使不是 localhost,如果我使用主服务器 IP,它也会给我 nrpe 版本作为结果。

当我从 nagios 客户端机器执行相同的命令时,它再次给我 nrpe 版本。主服务器 IP 位于 nrpe.cfg 文件中。有关信息,主 IP 和客户端 IP 均配置为 eth1。

那么问题出在哪里?为什么我的主服务器无法在客户端机器上运行此命令?

答案1

当你收到此错误时

CHECK_NRPE: Error - Could not complete SSL handshake.

这意味着nrpe服务器没有配置允许该请求。

你需要从 nrpe 配置文件中允许请求者的 IP 地址/etc/nagios/nrpe.cfg。你应该在以下行中包含该 IP:

allowed_hosts=127.0.0.1,your.ip.goes.here

更改配置后,不要忘记重新加载/重新启动 nrpe 服务器。

答案2

基本上,没有必要从 Nagios 客户端运行 check_nrpe,因为首先没有理由将其安装在 Nagios 客户端机器上。

check_nrpe插件应该始终从Nagios服务器运行。

除了 Khaled 的回答之外,我还会检查 NRPE 是否配置为独立守护进程或配置为由 Xinetd 启动。

如果它配置为通过 xinetd 运行(你可以检查下是否有一个名为 nrpe 的文件/etc/xientd.d),它将看起来像这样:

service nrpe
{
        flags           = REUSE
        type            = UNLISTED
        port            = 5666
        socket_type     = stream
        wait            = no
        user            = nagios
        group           = nagios
        server          = /usr/sbin/nrpe
        server_args     = -c /etc/nagios/nrpe.cfg --inetd
        log_on_failure  += USERID
        disable         = no
        only_from       = 127.0.0.1 nagios01.company.com 10.X.X.30
}

确保在“only_from”行中包含您的 Nagios 服务器 IP 或主机名,并确保值以空格分隔,而不是像文件中那样以逗号分隔/etc/nrpe/nrpe.cfg

我要检查的另一件事是 Nagios 服务器是否能够通过 NRPE 端口 telnet 连接 Nagios 客户端。

默认端口是 5666,因此您应该从 Nagios 服务器运行以下命令:

telnet nagios_server 5666

输出应如下所示:

[root@nagios01 ~]# telnet do01.company.com 5666
Trying 10.X.X.30...
Connected to do01.company.com.
Escape character is '^]'.

如果您无法从 Nagios 服务器 telnet 到 Nagios 客户端,我会从那里开始查找。

有一份我解决 NRPE 相关问题时经常使用的官方文档,请查看: Nagios 官方文档

相关内容