원격 JMX 모니터링 가능하게 하기
정리
- 설정 파일 수정
- 관련 파일
- $JAVA_HOME/jre/lib/management/management.properties
- 내용추가
- com.sun.management.jmxremote.port=8991
- com.sun.management.jmxremote.ssl=false
- 톰캣 설정 수정
- 관련 파일
- /etc/default/tomcat7
- JAVA_OPTS="-Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Dcom.sun.management.jmxremote
- password 파일 소유자 및 권한 수정
- sudo chown tomcat7.tomcat7 /etc/java-7-openjdk/management/jmxremote.password
- sudo chmod 600 /etc/java-7-openjdk/management/jmxremote.password
원격 JMX 모니터링 시 설정
설정이 필요한 파일
$JAVA_HOME/jre/lib/management/jmxremote.access
$JAVA_HOME/jre/lib/management/jmxremote.password
두 파일이 필요하다는데.
Ubuntu 14.04 Java Home Directory에서 JAVA_HOME은 /usr/lib/jvm/default-java임을알아냈다.
물론,
/usr/lib/jvm/default-java/jre/lib/management/jmxremote.access와 같은 직접적인 접근도 가능하다.
linux의 주 설정파일 들이 모여있는 디렉토리는 /etc이며, 위의 파일 또한 실제로는 /etc/java-7-openjdk/management/jmxremote.access라는 실제 파일에 대한 링크이다.
원격 JMX 모니터링 시 java 시작 옵션
1. 모든 프로그램에 적용 시
설정 항목
- com.sun.management.jmxremote
- com.sun.management.jmxremote.port=8991
- com.sun.management.jmxremote.ssl=false
- 관련 파일
- $JAVA_HOME/jre/lib/management/management.properties
Ubuntu tomcat 시작 시 com.sun.management.jmxremote 은 반드시 -Dcom.sun.management.jmxremote 형식으로 사용해야함.
/etc/init.d/tomcat7 참고하면
if [ -f "$DEFAULT" ]; then
. "$DEFAULT"
fi
처럼 $DEFAULT 파일을 실행하며, 이는
PATH=/bin:/usr/bin:/sbin:/usr/sbin
NAME=tomcat7
DESC="Tomcat servlet engine"
DEFAULT=/etc/default/$NAME
처럼 /etc/default/tomcat7이다.
/etc/default/tomcat7 파일 내용 수정
- JAVA_OPTS="-Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Dcom.sun.management.jmxremote"
tomcat을 시작하면 패스워드 파일 관련 에러를 뱉어내는데, 이는 보안을 위해 tomcat 을 실행하는 사용자의 소유여야 하며 다른 사용자의 접근 권한은 막혀있어야 한다는 것이다.
- sudo chown tomcat7.tomcat7 /etc/java-7-openjdk/management/jmxremote.password
- sudo chmod 600 /etc/java-7-openjdk/management/jmxremote.password
2. 해당 프로그램에 적용 시
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8991
-Dcom.sun.management.jmxremote.ssl=false
위 세 줄을 1.모든 프로그램에 적용 시를 참고하여 JAVA_OPTS에 추가한다.
ps.
JMX를 이용한 모니터링을 구현할 때 고려해야 할 프로그램 개발 구조.
http://www.zohocorp.com.cn/webnms/javaagent/images/multi-protocol-runtime-architecture.jpg
댓글
댓글 쓰기