웹 서버나 애플리케이션 서버를 운영하다 보면, 서비스의 상태를 모니터링하고 문제 발생 시 빠르게 대응하는 것이 중요합니다. 이번 포스트에서는 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 "%r" %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
파일을 확인하면 해당 날짜의 로그 정보를 확인할 수 있습니다.