JConsole 사용하기

dhbyun·2024년 1월 10일

Java

목록 보기
2/2
post-thumbnail

회사에서 상시 구동형 배치(Spring Batch, Java)의 모니터링이 필요한 상황이 발생했습니다.
배치는 자바로 구동하고 있어 자바 모니터링 방법을 찾아보다 'JConsole'을 알게 되었습니다.
제가 'JConsole'을 사용하기 위해 설정한 내용을 정리해보겠습니다.

JConsole

  • java process 모니터링 응용프로그램
  • jdk 내부 존재(./bin/jconsole[.exe])

1. JVM Options 추가

export JCONSOLE_PORT=8781

...

# JConsole
if [ -n $JCONSOLE_PORT ] ; then
#    export JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote=true"
    export JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=$JCONSOLE_PORT"
    export JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JCONSOLE_PORT"
    export JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
    export JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
    export JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=$(hostname -I)"
fi

...

nohup $JAVA_HOME/bin/java $JAVA_OPTS

JMX(Java Management eXtension) 설정을 추가했습니다.

IBM - JConsole 사용

JConsole 설정 옵션

-Dcom.sun.management.jmxremote.port=<port number>
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

위 내용을 설정했지만 Remote Process 기준으로는 접속되지 못했습니다.
하지만 아래 내용을 추가한 후 정상적으로 접속이 가능했습니다.

  • -Dcom.sun.management.jmxremote.rmi.port=<port number>
  • -Djava.rmi.server.hostname=$(hostname -I)"

2. JConsole(Remote Process)


Remote Process 정보 입력


Insecure connection 선택


마무리

제가 설정한 내용을 정리한 것이며, 올바르지 못한 내용이 있을 수 있습니다.
참고하는 정도로만 봐주시고 수정이 필요한 부분이 있다면 말씀 부탁드립니다.

감사합니다.

profile
어제보다 더 발전하는 오늘

0개의 댓글