JMX 로 Tomcat 모니터링 하기.
톰캣(Tomcat)은 JEE의 Web Container 의 구현에 입니다. 흔히 WAS 서버라고 하죠. 많은 기능이 있지만 이번에는 JMX를 설정하고 이를 이용해서 Tomcat 을 모니터링 해보겠습니다.
JMX는 Java Management eXtension 으로 자바 서비스들을 관리하고 모니터링하기위한 API를 제공하는 기능을 포함하는 기술입니다. Tomcat 오 자바 서비스의 일종임으로 JMX를 이용할 수 있습니다.
톰캣(Tomcat)의 경우에 아쉽게도 기본 배포본에 이를 위한 라이브러리가 포함되어 있지않아 이 기능을 이용하기 위해서는 톰캣용 JMX 라이브러리를 다운받고 톰캣을 재시작 해줘야 합니다.
1 2 |
# 톰캣버전에 맞는 JMX 를 다운받으시길 바랍니다. http://apache.mirror.cdnetworks.com/tomcat/tomcat-7/v7.0.57/bin/extras/catalina-jmx-remote.jar |
이 파일을 톰캣(Tomcat) 라이브러리 디렉토리인 lib 에 넣어줍니다.
그리고 톰캣(Tomcat)시작 스크립트에 다음과 같이 JMX 파라메터를 넣어줍니다.
1 2 3 4 5 6 |
export JMX_OPTS=" -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.authenticate=false \ -Djava.rmi.server.hostname=192.168.96.6 \ -Dcom.sun.management.jmxremote.ssl=false " export CATALINA_OPTS=" ${JMX_OPTS} ${CATALINA_OPTS}" |
여기서 주의해야할 것은 ‘192.168.96.6’ IP주소는 실제 톰캣(Tomcat)서버가 동작하는 서버의 IP주소로 바꿔야 한다는 것입니다.
그리고 다음과 같이 server.xml 파일에서 Server 섹션에 JMX 설정을 해줍니다.
1 2 3 |
<!-- Enable JMX --> <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="9180" rmiServerPortPlatform="9181"/> |
이렇게 한다음에 톰캣(Tomcat)을 재시작해주면 됩니다.
JMX 는 위 server.xml 설정에서 정의한 두가지 포트를 사용합니다. 여기서는 9180, 9181이 그렇습니다. 리눅스, 윈도우즈 서버라면 반드시 방화벽에서 위 포트를 허용하는 것을 잊지 말아야 합니다.
이제 자바가 설치된 컴퓨터에서 jconsole 을 실행해서 ‘JMX서버아이피주소:9180’ 으로 접속을 시도합니다.(설정에서 인증을 빼버렸기 때문에 아이디/패스워드를 입력할 필요가 없습니다.)
접속을 완료하면 다음과 같이 192.168.96.6 에서 동작하는 톰캣(Tomcat)서버를 모니터링하고 관리할 수 있게 됩니다.
http://apache.mirror.cdnetworks.com/tomcat/tomcat-7/v7.0.57/bin/extras/catalina-jmx-remote.jar
이 주소 not found 인데요.
버전이 바뀌는바람에 파일이 없는거네요. 7.0.57 버전은 이제 없어지고 http://apache.mirror.cdnetworks.com/tomcat/tomcat-7/v7.0.65/bin/extras/catalina-jmx-remote.jar 파일이 존재합니다. 방문해 주셔서 고맙습니다.
담아갈게요.