2014-09-19 68 views
1

所以我有一臺運行Apache Kafka(測試)的EC2服務器。它具有用於JMX和EC2安全設置的端口9111已更改爲打開端口。不能有JConsole閱讀Kafka JMX

我想在我的Mac上運行JConsole的閱讀本服務器的JMX的指標,但我得到了「安全連接失敗」的消息,然後問我是否想嘗試不使用SSL。所以我選擇了不安全。然後,我剛剛收到「連接失敗:重試?」錯誤。這次沒有太多解釋。什麼地方出了錯?在Kafka的JXM配置中,安全連接和認證被禁用。

任何線索/洞察力?

+0

我發現有關添加-Djava.rmi.server.hostname參數一些評論,但它仍然沒有奏效。 – kee 2014-09-23 22:07:19

回答

2

原來,當您運行在EC2上的Java程序,並要訪問它的JMX,你在運行Java程序指定「-Djava.net.preferIPv4Stack =真」。另外我不得不打開所有的端口,這是因爲RMI會使用不同的端口。所以我修正了RMI將要使用的端口。

2

在我的情況下,設置-Djava.rmi.server.hostname = my_machine_hostname作品。

+0

這就是我的。 – 2017-07-07 22:04:53

1

的問題是,當JVM創建一個遠程調試JMX服務,它也被分配一個動態的RMI端口。您需要訪問該端口以及JMX_PORT才能使用jConsole(或Kafka Manager等)進行連接。

爲此,可以使用

netstat -plunt 

的選擇這裏是迫使JVM使用的RMI固定端口使用下面的啓動參數

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

選項見。然後你可以打開那個特定的端口。如果您選擇dockerize您kafka解決方案,這也工作得很好。