JMX Exporter란
Java 애플리케이션이 노출하는 JMX(Java Management Extensions) 메트릭을 Prometheus 형식으로 변환해주는 Exporter입니다. tomcat은 JAVA기반 어플리캐이션이므로 JMX를 지원합니다.
JMX-exporter 설치 - tomcat서버
1) jmx-expoter 다운로드
host서버에서 jmx-exporter를 다운로드합니다.
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.18.0/jmx_prometheus_javaagent-0.18.0.jar
2) config.yml파일을 작성합니다.
ssl: false
rules:
- pattern: ".*"
해당 파일은 JMX매트릭 수집 조건을 설정하는 파일입니다.
기본적으로 “.*”은 모든 매트릭을 수집하는것입니다.
더 상세한 jmx-exporter의 config.yml 설정은 다음을 참고하세요.
(https://docs.confluent.io/platform/current/kafka/monitoring.html)
3) catalina.sh파일 수정
Tomcat 서버의 설정파일 중 하나인 catalina.sh를 수정해야 합니다. 보통 tomcat/bin/ 경로에 있습니다.
...
USE_NOHUP="false"
fi
fi
unset _NOHUP
if [ "$USE_NOHUP" = "true" ]; then
_NOHUP=nohup
fi
# Add the JAVA 9 specific start-up parameters required by Tomcat
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.lang=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"
export JDK_JAVA_OPTIONS
#아래 부분 추가
# JMX-exporter
export CATALINA_OPTS="-javaagent:/opt/jmx/jmx_prometheus_javaagent-0.18.0.jar=7080:/opt/jmx/config.yml"
# 경로 유의
# ----- Execute The Requested Command -----------------------------------------
# Bugzilla 37848: only output this if we have a TTY
if [ $have_tty -eq 1 ]; then
echo "Using CATALINA_BASE: $CATALINA_BASE"
echo "Using CATALINA_HOME: $CATALINA_HOME"
echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
if [ "$1" = "debug" ] ; then
echo "Using JAVA_HOME: $JAVA_HOME"
else
...
포트는 변경 가능합니다.
완료하였다면, tomcat을 재시작 합니다.
JMX exporter 모니터링
1)JMX 매트릭 확인
설정을 모두 완료하고 JMX-exporter가 정상적으로 실행되었다면, 매트릭이 잘 나오는지 확인합니다.
"tomcat이 실행되는 host서버의 주소 : 7080포트"
2) prometheus target 추가
prometheus의 config.yml 파일에 job을 추가합니다.
이후 prometheus재시작 후 접속하여 target이 잘 들어오는지 확인합니다.
3)grafana 대시보드 설정
먼저 그라파나에서 data source를 등록합니다.(이미 등록하였다면 상관X)
등록방법은 prometheus-grafana 연동 글을 참고해 주세요.
소스를 등록하였다면, 대시보드를 import합니다. 대시보드 ID는 다음과 같습니다.
ID 7727
import를 진행 하게 되면 화면에 데이터가 나오지 않거나, 모든JMX 매트릭이 나옵니다.
tomcat의 데이터만 모니터링 하기 위해 대시보드의 설정에 들어갑니다.
Variables를 다음과같이 수정합니다.
설정을 저장하면 다음과같이 나오게 됩니다
'Monitoring > Prometheus-Grafana' 카테고리의 다른 글
[Prometheus - Grafana] - 10 cAdvisor-도커모니터링 실습 (0) | 2025.04.19 |
---|---|
[Prometheus - Grafana] - 9 Postgresql-exporter 실습 (0) | 2025.04.19 |
[Prometheus - Grafana] - 6 그라파나 설치 (docker) (0) | 2025.04.19 |
[Prometheus - Grafana] - 5 그라파나(Grafana)란? (1) | 2025.04.19 |
[Prometheus - Grafana] - 7 Node-exporter 실습 (0) | 2025.04.19 |
댓글