본문 바로가기

IT

웹 톰캣 jmx 설정

728x90
반응형

 

 

Tomcat에서 JMX(Java Management Extensions)를 설정하면 애플리케이션 서버의 모니터링과 관리 작업을 원격으로 수행할 수 있습니다.

 

아래는 Tomcat에 JMX를 설정하는 단계적인 방법입니다.


1. JMX 기능 활성화

Tomcat에서 JMX를 활성화하려면, setenv.sh (또는 Windows의 경우 setenv.bat) 파일을 수정하여 JMX 관련 설정을 추가합니다.

a. setenv.sh 파일 위치

  • $CATALINA_HOME/bin/setenv.sh (없다면 새로 생성).

b. JMX 설정 추가

bash


JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote=true" 
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9999" # JMX 포트 
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false" # SSL 사용 여부 
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=true" # 인증 활성화 
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.access.file=$CATALINA_HOME/conf/jmxremote.access" 
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.password.file=$CATALINA_HOME/conf/jmxremote.password"

2. 인증 설정

a. jmxremote.access 파일 생성

$CATALINA_HOME/conf/jmxremote.access 파일을 생성하고, 아래 내용을 추가합니다:

bash

monitorRole readonly controlRole readwrite

b. jmxremote.password 파일 생성

$CATALINA_HOME/conf/jmxremote.password 파일을 생성하고, 아래 내용을 추가합니다:

bash

monitorRole your_password controlRole your_password
 
  • 파일 권한 설정:
     
bash

chmod 600 $CATALINA_HOME/conf/jmxremote.password

3. 방화벽 및 네트워크 설정

JMX 포트(예: 9999)가 외부에서 접근 가능하도록 방화벽에서 허용합니다.

bash
 
sudo ufw allow 9999/tcp

4. Tomcat 재시작

Tomcat을 재시작하여 설정을 반영합니다.

bash
 
$CATALINA_HOME/bin/shutdown.sh $CATALINA_HOME/bin/startup.sh

5. JMX 클라이언트로 연결

JMX를 설정한 후에는 JConsole, VisualVM, 또는 다른 JMX 클라이언트를 사용하여 Tomcat 서버를 모니터링할 수 있습니다.

a. JConsole 예제

  1. JConsole 실행:
    bash
    jconsole
     
  2. 원격 프로세스 연결:
    • 호스트: your_server_ip
    • 포트: 9999
  3. 인증 정보 입력:
    • 사용자 이름: monitorRole 또는 controlRole.
    • 비밀번호: 설정한 비밀번호.

6. 추가 보안 설정

a. SSL 활성화

  • 보안 통신이 필요하면 setenv.sh에서 SSL을 활성화합니다:
     
     
bash

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=true" 
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.keyStore=/path/to/keystore" 
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.keyStorePassword=your_password"

b. IP 제한

  • 특정 IP만 접근하도록 방화벽 또는 JMX 설정에서 제한합니다:
bash

JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=your_server_ip"

7. 문제 해결

  • JMX 포트 충돌: 다른 애플리케이션이 같은 포트를 사용하지 않는지 확인.
  • 방화벽 문제: 네트워크 방화벽 또는 서버 방화벽 규칙이 JMX 포트를 차단할 수 있으므로 확인.
  • 파일 권한 문제: jmxremote.password 파일의 권한이 올바르게 설정되어 있는지 확인.

이 과정을 따라 설정하면 Tomcat JMX를 사용하여 서버 상태를 모니터링하고 관리할 수 있습니다.

300x250
반응형