카테고리 없음

10. Tomcat모니터링방법

잘나가는전산쟁이 2026. 8. 5. 02:24
728x90
반응형

Tomcat 성능 모니터링

  • 본 문서는 Zabbix에서 Apache Tomcat의 성능 지표를 모니터링하는 방법을 설명한다.
  • Tomcat 모니터링의 가장 일반적인 방식은 JMX를 사용해 JVM과 Tomcat MBean을 수집하는 것이다.
  • 필요에 따라 Tomcat Manager, access log, JVM 툴(jstat, jconsole)도 함께 활용할 수 있다.

구성 개요

  • Zabbix Server 또는 Proxy: JMX 아이템을 통해 Tomcat 메트릭을 수집한다.
  • Zabbix Java Gateway: JMX 요청을 대상 Tomcat으로 중계한다.
  • Tomcat JVM: JMX port를 통해 메트릭을 노출한다.
  • 통신 포트:
    • Zabbix Server/Proxy -> Java Gateway: 10052/tcp.
    • Java Gateway -> Tomcat JMX port: 예시로 9010/tcp 또는 환경별 지정 포트.
    • Tomcat HTTP port: 일반적으로 8080/tcp.

권장 방식

  • 가장 표준적인 방식은 Tomcat에 JMX를 활성화하고 Zabbix Java Gateway를 통해 수집하는 것이다.
  • Tomcat Manager는 보조 수단으로 유용하지만, 운영 모니터링의 주력은 JMX가 더 적합하다.
  • access log는 요청 수, 응답 코드, 지연 분석에 유용하며 JMX와 함께 보면 좋다.

사전 준비

  • Tomcat이 정상 구동 중이어야 한다.
  • JMX remote 접속이 가능해야 한다.
  • Zabbix Server 또는 Proxy에 Java Gateway가 설치되어 있어야 한다.
  • Zabbix Web UI에서 Host가 생성되어 있어야 하며, JMX interface를 등록할 준비가 되어 있어야 한다.

Tomcat JMX 활성화

  • Tomcat 시작 옵션에 JMX 관련 JVM 파라미터를 추가한다.
  • 예시는 다음과 같다.
CATALINA_OPTS="$CATALINA_OPTS \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9010 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=<TOMCAT_SERVER_IP>"
  • 운영 환경에서는 인증과 SSL을 반드시 검토하는 것이 좋다.

Tomcat Manager 활용

  • Tomcat Manager는 기본 상태와 배포 애플리케이션 상태를 확인하는 데 유용하다.
  • /manager/status 또는 /manager/html을 통해 상태를 볼 수 있다.
  • Manager 접근을 위해 tomcat-users.xml에 manager 권한을 가진 계정을 추가해야 한다.

예시

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="StrongPassword" roles="manager-gui,admin-gui"/>

Java Gateway 설정

  • Zabbix Server 또는 Proxy에 Java Gateway를 설치하고 JavaGateway, JavaGatewayPort, StartJavaPollers를 설정한다.
  • Tomcat JMX 모니터링은 Java Gateway를 통해 처리되므로 이 부분이 핵심이다.
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5

Web UI 등록

  • Zabbix Web UI에서 Tomcat Host를 생성한다.
  • Host에는 JMX interface를 추가하고 Tomcat JMX 포트를 입력한다.
  • 템플릿은 Generic Java JMX를 우선 사용하고, Tomcat 전용 템플릿이 있으면 추가로 연결한다.
  • Host name과 JMX 설정, Java Gateway 경로가 일치해야 한다.

주요 수집 항목

  • JVM heap usage.
  • Non-heap memory usage.
  • Thread count.
  • GC activity.
  • Request throughput.
  • Request processing time.
  • Connector status.
  • Worker thread pool utilization.

추가 점검 지표

  • Access log 기반 HTTP status code 분포.
  • 4xx/5xx 응답 수.
  • 응답 latency.
  • 연결 수와 busy thread 수.
  • DB connection pool 상태가 있으면 함께 확인.

방화벽 및 접근 제어

  • Zabbix Server/Proxy는 Java Gateway의 10052/tcp에 접근 가능해야 한다.
  • Java Gateway는 Tomcat JMX 포트 9010/tcp 또는 실제 설정 포트에 접근 가능해야 한다.
  • Tomcat HTTP 포트 8080/tcp는 Manager나 status page 접근용으로 별도 통제가 필요하다.
  • JMX 포트는 외부에 직접 노출하지 말고 관리망 또는 로컬 전용으로 제한하는 것이 좋다.

대용량 운영 추천값

  • 여러 Tomcat 인스턴스를 운영할 경우 JMX 포트를 인스턴스별로 표준화한다.
  • Java Gateway는 Zabbix Server와 가깝게 두거나 Proxy 인접 위치에 두는 구성이 좋다.
  • 추천 시작 기준은 아래와 같다.
항목 추천값
JMX 포트 9010부터 시작, 인스턴스별 고정
Java Gateway 포트 10052
Java Poller 수 5부터 시작
JMX 보안 인증/SSL 적용 검토
Tomcat Manager 보조 확인용
주요 템플릿 Generic Java JMX

점검 항목

  • Tomcat JVM이 JMX 옵션으로 정상 구동 중인지 확인한다.
  • Java Gateway와 Tomcat JMX 포트 간 연결이 가능한지 확인한다.
  • Zabbix Web UI에서 JMX interface와 템플릿 연결 여부를 확인한다.
  • jconsole 또는 jstat로 JVM 상태를 교차 확인한다.
  • Manager 접근 불가, JMX 포트 차단, RMI hostname 오류는 가장 흔한 원인이므로 우선 점검한다.

운영 팁

  • Tomcat은 JVM 지표와 애플리케이션 지표를 같이 봐야 원인 분석이 쉽다.
  • JMX만으로 부족하면 access log와 APM을 함께 붙이는 것이 좋다.
  • 응답 시간과 오류율은 운영상 가장 먼저 봐야 하는 지표다.
  • 처음에는 기본 JMX 메트릭만 적용하고, 이후 Connector별 상세 지표와 로그 기반 지표를 추가하는 방식이 안정적이다.
728x90
반응형