CentOS에 설치된 톰캣8를 윈도우에 설치된 JMX로 모니터링 해보기

JMX

전체 이름은 Java Management Extension이며, 

자바로 만들어진 앱의 모니터링과 관리를 할 수 있는 기술로 생각하면 된다.

설정

얼핏 보면 설정이 많아 보이지만,

걱정은 날려버리고 하나하나 설정해 보자.

1) $CATALINA_HOME\server.xml

<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="9090" rmiServerPortPlatform="9091" />

rmiRegistryPortPlatform는 JMX클라이언트가 서버에 연결할 때 사용할 포트

rmiServerPortPlatform는 서버가 사용할 포트


2) catalina-jmx-remote.jar

catalina-jmx-remote.jar은 확장 기능이므로, 별도로 다운로드 해야하며,

사용하는 톰캣 버전과 일치하는 곳에서 받아야 한다.

다운로드 주소 : http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.1/bin/extras/catalina-jmx-remote.jar

복사할 경로 : $CATALINA_HOME\lib


3) \tomcat\bin\catalina.sh

추가할 위치는 #JAVA_OPTS 주석 근처이며, 아래에 있는 주석은 파일에 이미 있다.

# Uncomment the following line to make the umask available when using the # org.apache.catalina.security.SecurityListener #JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`" JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote \ -Djava.rmi.server.hostname=172.20.44.180 \ -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=true \ -Dcom.sun.management.jmxremote.password.file=$CATALINA_HOME/conf/jmxremote.password \ -Dcom.sun.management.jmxremote.access.file=$CATALINA_HOME/conf/jmxremote.access"

 hostname

서버의 ip 

 ssl

 ssl 사용 유무

 authenticate

인증 유무 

포트가 열리게 되므로, 인증을 거치도록 하는게 좋겠다.

 password.file

 패스워드 파일을 지정

템플릿 파일 위치

$JAVA_HOME\jre\lib\management\jmxremote.password.template 


예)

monitor 1212 admin 1212


 access.file

계정에 역할 부여한 파일을 지정 

템플릿 파일 위치

$JAVA_HOME\jre\lib\management\jmxremote.access 


예)

monitor readonly admin readwrite \ create javax.management.monitor.*,javax.management.timer.* \ unregister

monitor 계정은 요약정보만 볼 수 있고,

admin 계정은 요약정보뿐만 아니라, thread와 cpu 정보를 덤프 할 수 있으며, 상세한 정보를 확인할 수 있다.


4) 방화벽 설정

$ iptables -I INPUT -m tcp -p tcp --dport 9090 -j ACCEPT $ iptables -I INPUT -m tcp -p tcp --dport 9091 -j ACCEPT $ service iptables save $ service iptables restart

5) 톰캣 재시작

$ service tomcat8 restart

테스트 해보기

윈도우에서 JMX 실행

JXM 위치 : \Program Files\Java\jdk1.7.0_51\bin\jvisualvm.exe



1) 연결하기

JMX 실행 -> 왼쪽 Applictions 패널의  Remote 우클릭 -> Add Remote Host -> 호스트 이름 입력



추가된 호스트 우클릭 -> Add JMX Connection -> 호스트 주소와 계정 입력



2) 연결 후, 모니터링 화면