Notice
Recent Posts
Recent Comments
Tags
- Kubernetes
- 우파푸른하늘
- openldap
- n15148
- wildfly jboss
- mgmtip
- Galera Cluster
- maxscale
- etcd
- dell
- perplexity
- RHEL8
- CEP
- port description
- docker
- n1548
- Network
- vmware
- 참교육
- admin port
- Path
- Netflix
- drbd
- pod
- CentOS
- 진상부모_물러가라
- 우파푸른하늘80만이벤트
- web&was apche htaccess
- banner
- 웰카
- unix_socket
- MotD
- Storage
- Auth
- mariadb
- snmp
- data-door
반응형
250x250
전산쟁이의 기억노트
10. Tomcat모니터링방법 본문
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
반응형
Comments
