Tomcat JMX를 Zabbix Java Gateway에 연결하기

목차

Tomcat JVM 지표를 Zabbix Java Gateway를 통해 수집하는 구성입니다. 원노트의 기준은 Rocky 8.9, Zabbix 6.0, Java 17입니다. JMX는 JVM 기능이며 Tomcat 버전만으로 내장 여부를 단정하지 않습니다.

Java Gateway 설정

Zabbix 저장소가 준비된 서버에 zabbix-java-gateway를 설치합니다. Gateway의 LISTEN_PORT와 Zabbix 서버의 JavaGatewayPort는 같아야 합니다. 예시는 같은 서버에서 10061 포트를 사용하는 구성입니다.

TERMINAL / CONFIG
sudo dnf install zabbix-java-gateway
TERMINAL / CONFIG
# /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="127.0.0.1"
LISTEN_PORT=10061
TERMINAL / CONFIG
# /etc/zabbix/zabbix_server.conf
JavaGateway=127.0.0.1
JavaGatewayPort=10061
StartJavaPollers=5

Tomcat JVM 옵션

$CATALINA_BASE/bin/setenv.sh에 JVM 시작 옵션을 추가합니다. RMI 포트도 고정해야 방화벽 경로를 예측할 수 있습니다. 호스트명은 Java Gateway가 실제로 해석·접속할 수 있는 이름으로 설정합니다.

TERMINAL / CONFIG
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.port=10060"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.rmi.port=10060"
CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=tomcat.example.com"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=true"

원본의 인증·SSL 모두 비활성화한 옵션은 운영 예시에서 제외했습니다. Java의 JMX 암호·권한 파일과 TLS 인증서·truststore를 구성하고 Gateway 측 인증·TLS 지원 조합을 확인해야 합니다. 위 옵션만으로 운영용 인증 구성이 끝나지는 않습니다.

수집 검증

서비스를 계획에 따라 재기동하고 실제 JVM 명령행에 옵션이 반영됐는지 확인합니다. Gateway에서 JMX 포트까지 통신이 가능한지 확인한 뒤 Zabbix 호스트에 JMX 인터페이스와 Tomcat·JVM 템플릿을 연결합니다. 인증 매크로는 비밀 값으로 관리합니다.
최신 데이터에서 heap·thread·GC 값이 갱신되는지 보고, 실패 시 Tomcat 로그와 Java Gateway 로그를 함께 확인합니다. 관리 포트를 인터넷에 공개하지 않습니다.

웹 › tomcat
tomcat 목록