상세 컨텐츠

본문 제목

웹 톰캣 jmx 설정

IT

by JR 2025. 1. 19. 08:12

본문

300x250
반응형

 

 

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
반응형

'IT' 카테고리의 다른 글

한글 문자 인코딩하는 이유?  (0) 2025.01.27
netric 이란?  (0) 2025.01.19
카프카 토픽 생성하는 이유?  (0) 2025.01.18
카프카 replication factor, min in sync replicas 개념은?  (0) 2025.01.17
ADID, IDFA 차이는?  (0) 2025.01.08

관련글 더보기