所以我有一个运行apachekafka(测试)的ec2服务器。它已更改jmx的端口9111和ec2安全设置以打开该端口。
我试图在我的mac上运行jconsole来读取这个服务器的jmx指标,但是我收到了“secure connection failed”消息,然后它询问我是否要尝试不使用ssl。所以我选择了不安全感。然后我得到了“连接失败:重试?”错误。这次没什么解释。出什么事了?在kafka的jxm配置中,禁用了安全连接和身份验证。
有什么线索/见解吗?
所以我有一个运行apachekafka(测试)的ec2服务器。它已更改jmx的端口9111和ec2安全设置以打开该端口。
我试图在我的mac上运行jconsole来读取这个服务器的jmx指标,但是我收到了“secure connection failed”消息,然后它询问我是否要尝试不使用ssl。所以我选择了不安全感。然后我得到了“连接失败:重试?”错误。这次没什么解释。出什么事了?在kafka的jxm配置中,禁用了安全连接和身份验证。
有什么线索/见解吗?
3条答案
按热度按时间mzsu5hc01#
结果是,当您在ec2中运行java进程并希望访问其jmx时,必须在运行java进程时指定“-djava.net.preferipv4stack=true”。我还必须打开所有端口,这是因为rmi将使用不同的端口。所以我修复了rmi要使用的端口。
lc8prwob2#
问题是,当jvm创建远程调试jmx服务时,它还分配了一个动态rmi端口。您需要访问该端口以及jmx\u端口,以便能够使用jconsole(或kafka管理器等)进行连接。
你可以使用
这里的一个选项是使用下面的startup参数强制jvm为rmi使用固定端口
选项。然后你就可以打开那个特定的端口。如果你选择将你的Kafka解决方案dockerize,这也非常有效。
z4iuyo4d3#
在我的例子中,设置-djava.rmi.server.hostname=my\u machine\u hostname有效。