본문으로 건너뛰기

3.3. MBean 을 보는 도구

JMX 표준을 따르므로 도구를 골라 쓸 수 있습니다. 목적에 맞는 것을 고르십시오.

도구어떤 때 쓰나준비
JConsole잠깐 값을 확인할 때. JDK 에 들어 있어 따로 설치하지 않습니다JDK
VisualVM값과 함께 힙·스레드도 같이 볼 때별도 설치(JDK 9 부터 분리)
hawtio웹 브라우저로 볼 때. 원격 서버에 편리합니다Jolokia 배포 필요
jmxterm명령줄에서 스크립트로 값을 뽑을 때별도 설치
Prometheus JMX Exporter값을 계속 수집해 그래프로 남길 때에이전트 설정
WAS 관리 콘솔WebLogic·JEUS 등 제품 콘솔에 JMX 탐색 기능이 있으면 그것으로없음

상시 감시가 필요하면 Prometheus JMX Exporter 처럼 값을 모으는 도구를, 한 번 보고 끝낼 일이면 JConsole 을 권합니다.

JConsole 로 보기

JDK 가 설치된 곳에서 아래를 실행하고, 목록에서 WAS 프로세스를 고른 뒤 MBeans 탭에서 com.opennaru.khan.session 을 펼칩니다.

jconsole

원격 서버라면 WAS 기동 옵션에 JMX 원격 접속 설정이 필요합니다.

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

인증 없이 열면 누구나 접속할 수 있습니다. 운영 환경에서는 인증과 SSL 을 켜거나 방화벽으로 접근을 제한하십시오.

브라우저로 보기 (hawtio 예시)

웹 브라우저로 원격 서버의 MBean 을 보는 방법입니다. 아래 화면은 hawtio 로 찍은 것이지만, 보이는 값과 오퍼레이션은 어느 도구를 쓰든 같습니다.

서버 쪽에는 Jolokia 가 배포되어 있어야 합니다. Jolokia 는 JMX 를 HTTP 로 노출해 주는 중계기이며, 브라우저 기반 도구는 이것을 거쳐 MBean 을 읽습니다.

준비가 되면 브라우저에서 서버 주소와 접속 정보를 입력해 연결합니다. JBoss 라면 서버의 IP 주소와 HTTP 포트, 관리 콘솔 계정을 씁니다.

Jolokia 배포 확인

접속되지 않는다면 Jolokia 가 배포되어 있는지 먼저 봅니다. JBoss 라면 standalone-ha.xml 에 아래 설정이 있어야 합니다.

<deployments>
...
<deployment name="jolokia-war-1.2.0.war" runtime-name="jolokia-war-1.2.0.war">
<content sha1="ea788aa20046173561f736ae738113c4d8ff6133"/>
</deployment>
...
</deployments>

설정이 되어 있지 않다면, jolokia-1.2.0.war를 사용하여 다음과 같이 설정합니다.

<deployments>
...
<deployment name="jolokia-war-1.2.0.war" runtime-name="jolokia-war-1.2.0.war">
<fs-archive path="/svc/test/domains/app/jolokia-war-1.2.0.war"/>
</deployment>
...
</deployments>

세션 정보 확인

  1. 세션 상태 모니터링

MBean 목록에서 com.opennaru.khan.session 을 펼치고 애플리케이션 이름(루트 컨텍스트면 ROOT)을 클릭하면 세션 정보가 나옵니다.

JMX 트리에서 SessionMonitor 선택
  1. ‘Operations’ 탭 선택

Operations 탭을 선택하면, 정보를 가져올 수 있는 API들이 표시됩니다.

Operations 탭의 API 목록
  1. 세션 ID 리스트 가져오기

‘getSessionIds(int)’를 클릭합니다.

getSessionIds 오퍼레이�션 선택

파라미터로 가져올 세션 ID의 개수를 입력한 후, ‘Execute’ 버튼을 클릭합니다.

세션 ID 개수 입력 후 실행

아래와 같이 현재 사용중인 세션 ID들이 표시됩니다.

조회된 세션 ID 목록
  1. 세션 ID에 대한 속성정보 표시
    • getSessionAttributes(java.lang.String)을 클릭합니다.
getSessionAttributes 오퍼레이션 선택
  • P1에 세션 ID 를 입력한 후 ‘Execute’ 버튼을 클릭합니다.
    • Cookie 정보 중 세션 ID, 기본값: __KSMSID__
세션 ID 입력 후 실행
  • 세션 정보를 확인합니다.
조회된 세션 속성 정보

차트로 추이 보기

시간의 흐름에 따라 세션정보가 어떻게 변하는지 확인할 수 있습니다. 평소 값의 모양을 알아 두면 이상이 생겼을 때 바로 알아챌 수 있습니다.

세션 지표 차트