[java] Tomcat에서의 웹 서비스 모니터링 및 트래킹 방법

웹 서버나 애플리케이션 서버를 운영하다 보면, 서비스의 상태를 모니터링하고 문제 발생 시 빠르게 대응하는 것이 중요합니다. 이번 포스트에서는 Tomcat에서 웹 서비스를 모니터링하고 트래킹하는 방법에 대해 알아보겠습니다.

1. JMX 설정하기

Java Management Extensions (JMX)을 사용하여 Tomcat의 모니터링을 활성화합니다. 아래는 JMX 설정을 위해 catalina.sh (또는 catalina.bat이 Windows에서) 파일의 JAVA_OPTS에 설정할 내용입니다.

-Dcom.sun.management.jmxremote=true 
-Dcom.sun.management.jmxremote.port=9999 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false

위 설정은 JMX를 9999 포트에서 사용하고 SSL을 비활성화하며, 인증 없이 접속할 수 있도록 합니다.

2. JConsole로 접속하기

JConsole은 JMX를 통해 Java 애플리케이션의 상태를 모니터링하기 위한 GUI 도구입니다.

JConsole을 실행하고, Remote Process에서 원하는 Tomcat 프로세스를 선택한 후 “Connect”를 클릭합니다. 그러면 Tomcat 서버의 JMX MBean과 모니터링 가능한 속성들을 확인할 수 있습니다.

3. 웹 서비스 트래킹하기

웹 서비스를 트래킹하기 위해서는 로깅 설정을 변경해야 합니다. server.xml 파일에서 아래와 같이 Valve 설정을 추가합니다.

<Engine name="Catalina" defaultHost="localhost">
  ...
  <Valve className="org.apache.catalina.valves.AccessLogValve"
         directory="logs" prefix="localhost_access_log." suffix=".txt"
         pattern="%h %l %u %t &quot;%r&quot; %s %b %D" resolveHosts="false"/>
  ...
</Engine>

위 설정은 logs 디렉토리에 접근 로그를 기록하도록 합니다. %h, %l, %u, %t, %r, %s, %b, %D는 각각 클라이언트 IP, 로깅 시간, 요청 메소드 등을 나타냅니다.

4. 로그 확인하기

Tomcat이 로그를 기록하는 디렉토리에서 Access Log 파일을 확인하여 웹 서비스의 트래킹 정보를 얻을 수 있습니다. 예를 들어, localhost_access_log.2021-01-01.txt 파일을 확인하면 해당 날짜의 로그 정보를 확인할 수 있습니다.

참고 자료