JMX 사용

1. JVM 옵션

JVM_ARGS=”$JVM_ARGS -Dcom.sun.management.jmxremote=true
JVM_ARGS=”$JVM_ARGS -Dcom.sun.management.jmxremote.port=9090″
JVM_ARGS=”$JVM_ARGS -Dcom.sun.management.jmxremote.ssl=false”
JVM_ARGS=”$JVM_ARGS -Dcom.sun.management.jmxremote.authenticate=false”
JVM_ARGS=”$JVM_ARGS -Djava.rmi.server.hostname=10.107.24.44″
JVM_ARGS=”$JVM_ARGS -Dcom.sun.management.jmxremote.rmi.port=9091″
// 랜덤으로 포트가 바뀌지 않게 박아줌
 
 
예시)
java -Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=9090
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=10.107.90.220
-Dcom.sun.management.jmxremote.rmi.port=9091 -cp kairosQuery-0.0.1-SNAPSHOT.jar jmx.MBeanTest

따로 설정파일이 있는 경우에는 설정을 넣어주고 아니면 명령어 실행할때 넣어주면됨!
-Dcom.sun.management.jmxremote=true 대신 -Dcom.sun.management.jmxremote 이렇게하면 연결안됨

 


주의 사항)
  1. /etc/hosts에 호스트 추가 해줘야 함
    1. 호스트 추가
    2. 없을때 에러
      Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: kcdevnmlogapi02: kcdevnmlogapi02: unknown error※ Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: dev-was01: dev-was01: Name or service not known

       => vi /etc/hosts 아래 host 추가하면됨

           127.0.0.1   localhost dev-was01

      ※ shutdown시 Error: Exception thrown by the agent : java.lang.NullPointerException

       => CATALINA_OPTS 아닌 JAVA_OPTS 에 넣으면 Exception 에러발생

      ※ catalina-jmx-remote.jar 필요시 톰캣사이트에서 다운르도 후 lib폴더에 넣기!

      => http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.53/bin/extras/

  2. -Djava.rmi.server.hostname에 ip를 적어줘야함 ( localhost나 호스트명 적어줘도 연결 안됨 )

2. VisualVM 연결

Visual VM에서 remote 접속을 수행한다.

 

화면의 Applications 탭에서 Remote를 클릭하면, “Add Remote Host”라는 팝업이 뜬다. 이 팝업의 “Host name”에 원격호스트의 주소를 적어주고, OK 버튼을 누른다. (여기서는 원격호스트의 주소는 192.168.0.53이라고 가정한다)

그러면, 원격호스트가 Remote 항목 밑에 표시된다.

해당 원격호스트 항목에서 마우스 오른쪽 버튼을 클릭해서 “Add JMX Connection”을 선택한다.

새로 열린 팝업 메뉴의 “Connection” 란에 원격호스트의 IP와 Port 번호를 적어준다. (본 예제의 원격호스트에서  java 프로세스를 실행할 때 지정한 JMX 포트 번호는 3333)

그러면, Applications 탭에 원격호스트의 java 프로세스가 등록된 것이 보일 것이다.

이제 해당 원격 프로세스 표시를 더블클릭하자. 그러면 다음과 같이 해당 java 프로세스의 상태가 표시될 것이다.

이제 원격 java 프로세스의 상태를 모니터링한다.

아래와 같이 “Overview”, “Monitor”, “Thread”, “Sampler” 등의 탭을 통하여 원격호스트 상의 java 프로세스의 상태를 모니터링할 수 있다.

 

참고: http://blog.embian.com/8 [Embian Blog]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s