2009-06-27 3 views
15

원격 Tomcat 프로세스를 모니터링하는 데 문제가 있습니다. Java 언어 버전 JConsole/JVisualVM을 사용하려고합니다.VisualVM을 사용하여 Tomcat에 연결할 수 없습니다.

적절한 보안 정책을 사용하여 원격 서버에서 jstatd를 실행하고 있습니다. 프로세스가 시작되고 TCP 연결을 사용할 수 있습니다.

JConsole을 통해 연결을 시도하면 'Connection Failed:jmxrmi'이됩니다.

VisualVM을 통해 연결을 시도 할 때 호스트 이름을 추가하고 'JMX 연결 추가'옵션을 마우스 오른쪽 단추로 클릭합니다. 그것은 내가보기를 기대하는 것이지 여부에 관계없이 문서에서 내게 불분명하다. 내가 연결하려고하면 내가 얻을 : 그 같은

'Cannot connect using service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi'. 

그래서, 워드 프로세서 난 단지 VisualVM과에서 모니터링하는 원격으로 실행 jstatd의 한 필요가 제안 UI를 .. jmxrmi을 요청하는 동안 있습니까? jmx rmi 옵션을 사용하여 tomcat을 설정하려고 시도했지만 방화벽 문제가 아닌 것으로 알고 있지만 시간 초과되었습니다.

원격 Tomcat 프로세스를이 방식으로 연결하는 데 성공한 사람이 누구인지 설명하고 방법을 설명하면 큰 도움이됩니다.

답변

13

Tomcat VM에 대한 관리 확장을 사용해야합니다. 당신이 그것을 위의 방법을 할 경우

물론
-Dcom.sun.management.jmxremote.port=8086 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 

, 톰캣이 인터넷에서 볼 수 없거나 포트가 원격 액세스에서 방화벽 또는 유사한 보안 조치를 취되어 있는지 확인 : 일반적으로 그 다음과 같이 전달 의미 포트 스캔 및 손상을 피할 수 있습니다. 그렇지 않으면 인증 옵션을 사용하십시오.

15

는 일반적으로 당신은 당신이 JAVA_OPTS에 서버의 IP 주소를 지정할 수 있는지 확인해야합니다. 그렇지 않으면 JMX가 다른 포트의 서버에 다시 연결하기 위해 클라이언트에게 명령을 되돌려 보내고 클라이언트에 제공 할 IP 주소가없는 경우 연결이 실패합니다. 이것에 대한

인수는 다음과 같습니다

-Djava.rmi.server.hostname=1.2.3.4 

당신은 설치 과정이 walk through에서 자세한 내용을 확인할 수 있습니다.

+5

안녕하세요. 큰 +10, 탱크! 서버에 다른 어댑터 (예 : VPN 등)가있는 경우'-Djava.rmi.server.hostname = 1.2.3.4'는 필수 항목입니다. – azendh

+0

이것은 나에게도 효과적입니다! 정말 고마워! – FSP

+0

큰 도움이 참으로 ... 그라시아 스! –

2

JMX 포트는 일반적으로 다른 포트로 데이터를 전송하므로 lsof -p -n |을 실행하여 해당 포트 번호를 찾아야합니다. grep TCP와 해당 포트에 대한 사용 권한을 활성화 한 다음 원격 JMX 에이전트에 연결을 시도합니다.

2

실제로이 문제를 직접 해결하고 알아 냈습니다.

문제는 RMI 연결입니다. 사용하는 포트를 예측할 수 없으므로 방화벽에서 작동하지 않을 수 있습니다.

해결 방법은 SSH 프록시를 사용하는 것입니다

  1. SSH 응용 프로그램이 실행하지만,이 같은 -D 옵션을 사용하는 상자 : REMOTEHOST -D 9999

    @

    SSH 사용자를

    이 '네트워크'아래 난을 구성, 포트 9999

  2. 열기 JVisualVM과 환경 설정에서 로컬 컴퓨터에 양말 프록시를 시작합니다 t은 위를 할 경우 9999

, 당신은 다음 정상적으로 원격 시스템에 연결할 수 있어야합니다 모든 RMI 트래픽 때문에 지금 이상 것입니다 포트, 로컬 호스트에서 SOCKS 프록시를 사용하는 SSH 프록시는 방화벽을 통해 천공되어 멋지게 작동합니다.

행운 :-)

관련 문제