tomcat의 모니터링은 오직 JMX를 이용해서 모니터링할 수 있다. Zabbix에서 JMX를 이용하려면 Zabbix 서버에 zabbix-java-gateway
를 설치해야 한다.
설치
apt install -y zabbix-java-gateway
환경설정
JavaGateway
항목을 찾아서 값을 셋팅한다.
> vi /etc/zabbix/zabbix_server.conf
...
282 ### Option: JavaGateway
283 # IP address (or hostname) of Zabbix Java gateway.
284 # Only required if Java pollers are started.
285 #
286 # Mandatory: no
287 # Default:
288 JavaGateway=192.168.1.25
289
290 ### Option: JavaGatewayPort
291 # Port that Zabbix Java gateway listens on.
292 #
293 # Mandatory: no
294 # Range: 1024-32767
295 # Default:
296 JavaGatewayPort=10052
297
298 ### Option: StartJavaPollers
299 # Number of pre-forked instances of Java pollers.
300 #
301 # Mandatory: no
302 # Range: 0-1000
303 # Default:
304 StartJavaPollers=5
zabbix-java-gateway 시작
systemctl enable zabbix-java-gateway
systemctl start zabbix-java-gateway
설정파일에 JMX 설정 값 추가
> vi /usr/local/java/apache-tomcat-8.5.28/bin/setenv.sh
# Added 21.04.16 JMX Monitoring
CATALINA_OPTS=$CATALINA_OPTS" -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=10060 \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.password.file=$CATALINA_BASE/conf/jmxremote.password \
-Dcom.sun.management.jmxremote.access.file=$CATALINA_BASE/conf/jmxremote.access \
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=192.168.1.5"
> chmod 755 setenv.sh
-Dcom.sun.management.jmxremote.port=10060
: java-gateway가 모니터링에 사용할 포트를 정의-Dcom.sun.management.jmxremote.ssl=false
: JMX 모니터링에 SSL 사용을 하지않는다.-Dcom.sun.management.jmxremote.authenticate=false
: JMX 모니터링에 인증을 사용한다.-Dcom.sun.management.jmxremote.password.file=$CATALINA_BASE/conf/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=$CATALINA_BASE/conf/jmxremote.access
-Djava.rmi.server.hostname=192.168.1.5
: 자기자신의 Private IP AddressJMX Password 및 Access 설정
cd /usr/local/java/apache-tomcat-8.5.28/conf/
vi jmxremote.access
admin readwrite
user readonly
vi jmxremote.password
admin dkagh1.
user user1!
톰캣 재시작
/usr/local/java/apache-tomcat-8.5.28/bin/shutdown.sh
/usr/local/java/apache-tomcat-8.5.28/bin/startup.sh
- JMX인증에 사용될 `{$TOMCAT.PASSWORD}` 와 `{$TOMCAT.USER}` 를 적절하게 수정해준다.
- 기존에 사용하던 Agent 인터페이스 외에 JMX 인터페이스를 추가시키고 포트는 JMX의 포트인 8989로 설정한다.
- 'Templates/Applications' → 'Template App Apache Tomcat JMX' 추가
*보통 Apache Tomcat JMX
이라는 템플릿이 존재할텐데 나의 경우에는 해당 템플릿이 존재하지 않아서 수동으로 Import해준 템플릿이다. 따라서 템플릿의 이름이 다를수도 있다.