ambari代理无法再通过http://< dom>联系服务器:8440?

xdyibdwo  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(908)

我们目前正在运行hortonworks 2.6.5.0:

$ hadoop version
Hadoop 2.7.3.2.6.5.0-292
Subversion git@github.com:hortonworks/hadoop.git -r 3091053c59a62c82d82c9f778c48bde5ef0a89a1
Compiled by jenkins on 2018-05-11T07:53Z
Compiled with protoc 2.5.0
From source with checksum abed71da5bc89062f6f6711179f2058
This command was run using /usr/hdp/2.6.5.0-292/hadoop/hadoop-common-2.7.3.2.6.5.0-292.jar

操作系统是centos 7:

$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

我们最近开始注意到这些问题 ambari-agent 的日志文件:

$ grep -i "error|warn" /var/log/ambari-agent/*
/var/log/ambari-agent/ambari-agent.log:WARNING 2018-07-30 14:03:50,982 NetUtil.py:124 - Server at https://hbase26-2.mydom.com:8440 is not reachable, sleeping for 10 seconds...
/var/log/ambari-agent/ambari-agent.log:ERROR 2018-07-30 14:04:00,986 NetUtil.py:96 - EOF occurred in violation of protocol (_ssl.c:579)
/var/log/ambari-agent/ambari-agent.log:ERROR 2018-07-30 14:04:00,990 NetUtil.py:97 - SSLError: Failed to connect. Please check openssl library versions.
/var/log/ambari-agent/ambari-agent.log:WARNING 2018-07-30 14:04:00,990 NetUtil.py:124 - Server at https://hbase26-2.aa.mydom.com:8440 is not reachable, sleeping for 10 seconds...
/var/log/ambari-agent/ambari-agent.log:ERROR 2018-07-30 14:04:10,993 NetUtil.py:96 - EOF occurred in violation of protocol (_ssl.c:579)
/var/log/ambari-agent/ambari-agent.log:ERROR 2018-07-30 14:04:10,994 NetUtil.py:97 - SSLError: Failed to connect. Please check openssl library versions.
/var/log/ambari-agent/ambari-agent.log:WARNING 2018-07-30 14:04:10,994 NetUtil.py:124 - Server at https://hbase26-2.aa.mydom.com:8440 is not reachable, sleeping for 10 seconds...
/var/log/ambari-agent/ambari-agent.log:ERROR 2018-07-30 14:04:20,996 NetUtil.py:96 - EOF occurred in violation of protocol (_ssl.c:579)
/var/log/ambari-agent/ambari-agent.log:ERROR 2018-07-30 14:04:20,997 NetUtil.py:97 - SSLError: Failed to connect. Please check openssl library versions.

当这些开始发生时,我们就不能再通过ambari管理hadoop集群的任何方面了。所有的服务都用黄色问号表示“心跳停止”。
多次重新启动将不允许我们恢复ambari,并最终恢复对集群的控制。

8yoxcaq7

8yoxcaq71#

此问题原来是由于服务器在尝试连接到端口8440上的ca服务时无法处理tlsv1.1证书造成的。
我们注意到服务实际上正在运行:

$ netstat -tapn|grep 8440
tcp        0      0 0.0.0.0:8440            0.0.0.0:*               LISTEN      1203/java

但是 curl 除非我们通过禁用tls检查,否则此操作将失败 --insecure 开关。这是我们的第一个线索,它似乎与tls有关。
进一步的调查使我们找到了netutil.py(ambari的一部分),看起来还可以。其他线索包括:

$ cat /etc/ambari-agent/conf/ambari-agent.ini
...
[security]
ssl_verify_cert = 0
...

还有这个:

$ grep -E '\[https|verify' /etc/python/cert-verification.cfg
[https]

# verify=platform_default

verify=disable

这些都不管用。最终起作用的是 ambari-agent 要使用tlsv1.2与tls1.1:

$ grep -E "\[security|force" /etc/ambari-agent/conf/ambari-agent.ini
[security]
force_https_protocol=PROTOCOL_TLSv1_2

然后重新启动, ambari-agent restart .
我可以用散布在互联网上的一小束提示把这些信息拼凑起来。我把这个放在这里是希望它能帮助那些在hadoop/hortonworks集群上发生这种事情的可怜的灵魂。

参考文献

ambari代理-[ssl:certificate\u verify\u failed]证书验证失败
java/python更新和ambari代理tls设置
主机注册时出现openssl错误
清理ambari metrics系统数据

为什么会这样?

进一步的调试/挖掘我发现这个线程的标题是:禁用tlsv1&tls1.1-启用tlsv1.2。显然,现在必须将ambari代理配置为使用tlsv1.2。

相关问题