不能让jconsole读kafka jmx

5t7ly7z5  于 2021-06-07  发布在  Kafka
关注(0)|答案(3)|浏览(517)

所以我有一个运行apachekafka(测试)的ec2服务器。它已更改jmx的端口9111和ec2安全设置以打开该端口。
我试图在我的mac上运行jconsole来读取这个服务器的jmx指标,但是我收到了“secure connection failed”消息,然后它询问我是否要尝试不使用ssl。所以我选择了不安全感。然后我得到了“连接失败:重试?”错误。这次没什么解释。出什么事了?在kafka的jxm配置中,禁用了安全连接和身份验证。
有什么线索/见解吗?

mzsu5hc0

mzsu5hc01#

结果是,当您在ec2中运行java进程并希望访问其jmx时,必须在运行java进程时指定“-djava.net.preferipv4stack=true”。我还必须打开所有端口,这是因为rmi将使用不同的端口。所以我修复了rmi要使用的端口。

lc8prwob

lc8prwob2#

问题是,当jvm创建远程调试jmx服务时,它还分配了一个动态rmi端口。您需要访问该端口以及jmx\u端口,以便能够使用jconsole(或kafka管理器等)进行连接。
你可以使用

netstat -plunt

这里的一个选项是使用下面的startup参数强制jvm为rmi使用固定端口

-Dcom.sun.management.jmxremote.rmi.port=<some available port>

选项。然后你就可以打开那个特定的端口。如果你选择将你的Kafka解决方案dockerize,这也非常有效。

z4iuyo4d

z4iuyo4d3#

在我的例子中,设置-djava.rmi.server.hostname=my\u machine\u hostname有效。

相关问题