有关此错误的所有问题都显示人们正在运行check_nrpe -H [some_remote_ip]
,而不是在localhost上运行错误。
$> ./check_nrpe -H localhost
CHECK_NRPE: Error - Could not complete SSL handshake.
该服务似乎已启动并正在运行:
$> sudo netstat -apn | grep :5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 5847/nrpe
tcp6 0 0 :::5666 :::* LISTEN 10216/nrpe
守护进程没有返回错误
$> sudo service nagios-nrpe-server status
* nagios-nrpe is running
我的nrpe.cfg
文件已正确设置allowed_hosts
:
allowed_hosts=127.0.0.1,10.0.1.2,0.0.0.0
启用调试的/var/log/syslog
内容:
Nov 1 22:54:44 <MYHOST> nrpe[11156]: Connection from ::1 port 6601
Nov 1 22:54:44 <MYHOST> nrpe[11156]: Host ::1 is not allowed to talk to us!
Nov 1 22:54:44 <MYHOST> nrpe[11156]: Connection from ::1 closed.
有没有人知道发生了什么,这看起来几乎是荒谬的。谢谢!
答案 0 :(得分:1)
请注意,我的示例可能与您的不同。
首先更改为具有nrpe命令的文件夹并运行:
./nrpe --version
该命令的输出如下所示:
NRPE - Nagios Remote Plugin Executor
Copyright (c) 1999-2008 Ethan Galstad (nagios@nagios.org)
Version: nrpe-3.0
Last Modified: 07-12-2016
License: GPL v2 with exemptions (-l for more info)
SSL/TLS Available, OpenSSL 0.9.6 or higher required
请注意,最后一行告诉您这个NRPE版本确实支持SSL。如果不存在,那么您必须安装一个使用SSL支持编译的版本(这可能意味着为您自己编译一个版本,具体取决于您获得它的位置)。源代码的文档非常清楚如何完成。
如果您有上面的SSL行,请查看该行上的所需版本并检查您的系统以确保至少已安装该版本。我用了这个命令:
rpm -qa | grep openssl
收到的输出如下:
libopenssl1_0_0-32bit-1.0.1k-2.39.1.x86_64
openssl-1.0.1k-2.39.1.x86_64
openssl和libopenssl都是NRPE SSL支持正常运行所必需的。我强烈建议如果没有安装这些,请使用您的系统软件包安装程序(aptget,yum,zypper,...)来获取和安装它们。如果这些已经安装,但您仍然有错误,那么您可能会遇到配置问题:
/etc/ssl/openssl.cnf
修复远远超出此处可用的范围/空间。我建议通过工作的在线软件包升级这两个软件包 - 这些软件包总是包含一个默认配置,应该可以正常使用NRPE - 假设版本等于或高于要求。
答案 1 :(得分:0)
我认为check_nrpe正在尝试使用IPv6。
IPv6 localhost ip为::1
,因此将其添加到allowed_hosts=
中的_nrpe.cfg_
行并重新启动nrpe将为您勾选此框。
或者,当另一个响应者回复时,您只需将-4
添加到check_nrpe
命令,以强制它坚持使用IPv4。
我遇到了同样的问题,只有当我在问题中看到::1
时,我才知道发生了什么事。
答案 2 :(得分:0)
我不确定它是否仍然相关,但我遇到了同样的问题并发现有人更改了/etc/hosts.allow
文件,阻止了访问。不知何故,这会导致以下错误:
Client: Connection refused by TCP wrapper
Server: Error: (nerrs = 0)(!log_opts) Could not complete SSL handshake with <Client IP> : rc=-1 SSL-error=5
更改/etc/hosts.allow
文件解决了问题。