我有一个本地 Nagios 服务器,我正在尝试将其配置为使用 check_jvm 监控我的 tomcat8 服务器,这样我就可以控制 Java 使用的内存和类。
为此,我在客户端安装了 check_nrpe 插件,并对其进行了配置,但我遇到了一个“奇怪”的错误。
如果我尝试从我的服务器调用客户端上的插件,它会正确回答,甚至使用 check_jvm 命令作为参数。
但是当我配置它以便 nagios 自己进行检查时,Web 浏览器会专门针对该服务返回“CHECK_NRPE:错误 - 无法完成 SSL 握手”。
这是我的:
从我的nagios服务器
# /usr/local/nagios/libexec/check_nrpe -H <client.ip>
NRPE v2.12
# /usr/local/nagios/libexec/check_nrpe -H <client.ip> -c tomcat_heap
OK 799998504 |max=2101870592;;; commited=2101870592;;; used=799998504;;;
其中 tomcat_heap
是在客户端的 nrpe.cfg
中定义的命令的名称,以便使用 check_jvm
插件。
command[tomcat_heap]=sudo /usr/local/nagios/libexec/check_jvm -n org.apache.catalina.startup.Bootstrap -p heap -w 1700000000 -c 2000000000
现在,回到我的 Nagios 服务器,这是服务定义
define service{
use generic-service
host_name lin-des
service_description Tomcat heap
check_command check_nrpe!tomcat_heap
}
现在,这会在 Web 应用程序上返回“CHECK_NRPE:错误 - 无法完成 SSL 握手”。
我检查了 nrpe.cfg
文件和 /etc/xinetd.d/nrpe
上的 allowed_hosts
,所以它包括我的nagios服务器IP。
我还检查了 Selinux 和 Iptables 配置。
我还检查了我的 Nagios 服务器和客户端共享相同版本的 ssl 库。
最后,我检查了服务器和客户端上/usr/local/nagios/libexec
的所有权限,因此用户nagios 拥有它们的所有权。
在这一点上,我没有想法了,这就是我问你的原因。关于问题可能出在哪里的任何想法?
最佳答案
找到了。
看来我在command.cfg中定义check_nrpe命令时,在命令行上出错了。
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5656 -t 30 -c $ARG1$
}
如您所见,我定义了在端口 5656 上运行的命令,该端口不是 nrpe 服务使用的端口(它实际上是 5666)。
修复此错误后,一切正常运行。
我希望这对遇到类似问题的人有所帮助。
关于java - CHECK_NRPE : Error - Could not complete SSL handshake (web),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30323748/