2014-09-19 2 views
1

그래서 Apache Kafka (테스트 중)를 실행하는 EC2 서버가 있습니다. JMX 용 포트 9111이 있고 포트를 열기 위해 EC2 보안 설정이 변경되었습니다.JConsole에서 Kafka JMX를 읽을 수 없습니다.

Mac에서 JConsole을 실행하여이 서버의 JMX 메트릭을 읽으려고하지만 "Secure Connection Failed"메시지가 표시되고 SSL없이 시도할지 묻는 메시지가 나타납니다. 그래서 나는 Insecure를 선택했다. 그럼 난 그냥 "연결 실패 : 재시도?" 오류. 이번에는별로 설명이 없습니다. 무엇이 잘못 되었습니까? Kafka의 JXM 구성에서는 보안 연결 및 인증이 사용되지 않습니다.

실마리/통찰력?

+0

-Djava.rmi.server.hostname 매개 변수를 추가하는 것에 대해 몇 가지 설명을 찾았지만 여전히 작동하지 않았습니다. – kee

답변

2

EC2에서 Java 프로세스를 실행하고 해당 JMX에 액세스하려는 경우 Java 프로세스 실행시 "-Djava.net.preferIPv4Stack = true"를 지정해야한다는 것이 밝혀졌습니다. 또한 RMI가 다른 포트를 사용하기 때문에 모든 포트를 열어야했습니다. 그래서 RMI가 사용할 포트를 수정했습니다.

2

제 경우에는 -Djava.rmi.server.hostname = my_machine_hostname을 설정하십시오.

+0

그것은 나를 위해 그것을했다. –

1

JVM이 원격 디버깅 JMX 서비스를 생성 할 때 동적 RMI 포트도 ​​할당된다는 것이 문제입니다. jConsole (또는 Kafka Manager 등)을 사용하여 연결할 수 있으려면 JMX_PORT와 함께 해당 포트에 액세스해야합니다.

는 당신이 아래의 시작 인수를

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

옵션을 사용하여 RMI에 대한 고정 포트를 사용하도록 JVM을 강제로 여기

netstat -plunt 

옵션을 사용하고 볼 수 있습니다. 그런 다음 해당 포트를 열면됩니다. 이것은 당신이 kafka 솔루션을 dockerize하도록 선택한 경우에도 매우 효과적입니다.