1. 개요
WebLogic은 자체적으로 매우 풍부한 시스템 메트릭(JVM 상태, JDBC 풀, JMS 큐 상태 등)을 **JMX(Java Management Extensions)**를 통해 노출합니다.
이 JMX 정보를 Prometheus JMX Exporter를 통해 수집하면, WebLogic 서버에 특화된 운영 메트릭을 Prometheus 기반으로 통합 관제할 수 있습니다.
이 방식은 Spring Boot Actuator 기반 메트릭만으로는 부족한 **WebLogic 내부 자원 상태(JDBC 풀 상태, thread pool, EJB 처리량 등)**까지 확인 가능한 장점이 있습니다.
⸻
2. 아키텍처 구성도
graph TD
A[WebLogic JVM]
B[JMX MBeans]
C[JMX Exporter (Java Agent)]
D[Prometheus]
E[Grafana]
A --> B --> C --> D --> E
⸻
3. 적용 방식: Java Agent 이용
WebLogic 시작 시, 다음과 같은 방식으로 jmx_prometheus_javaagent.jar 를 Java Agent로 등록합니다.
JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:/opt/jmx-exporter/jmx_prometheus_javaagent.jar=9999:/opt/jmx-exporter/config.yml"
WebLogic의 startWebLogic.sh 또는 setDomainEnv.sh에 위 구문을 삽입하면 WebLogic 실행과 함께 JMX Exporter가 9999 포트에서 메트릭을 노출하게 됩니다.
⸻
4. JMX Exporter 설정 예시 (config.yml)
startDelaySeconds: 10
jmxUrl: service:jmx:rmi:///jndi/rmi://localhost:7001/jmxrmi
username: weblogic
password: welcome1
lowercaseOutputName: true
lowercaseOutputLabelNames: true
ssl: false
rules:
- pattern: 'com.bea:Name=(.*),Type=JDBCDataSourceRuntime'
name: weblogic_jdbc_datasource_active_connections
type: GAUGE
attr: ActiveConnectionsCurrentCount
labels:
datasource: "$1"
- pattern: 'com.bea:Name=(.*),Type=ThreadPoolRuntime'
name: weblogic_thread_pool_active
type: GAUGE
attr: ExecuteThreadTotalCount
labels:
server: "$1"
⸻
5. Prometheus 설정 (scrape_configs)
scrape_configs:
- job_name: 'weblogic-jmx'
static_configs:
- targets: ['weblogic-host:9999']
⸻
6. 수집 가능한 대표 MBean 항목
MBean Type 주요 메트릭 예시 설명
JDBCDataSourceRuntime ActiveConnectionsCurrentCount, ConnectionDelayTime DB 커넥션 풀 상태
ThreadPoolRuntime ExecuteThreadTotalCount, HoggingThreadCount 웹로직 쓰레드 풀
JMSDestinationRuntime MessagesCurrentCount, ConsumersCurrentCount JMS 큐 사용량
JVMRuntime HeapFreeCurrent, Uptime JVM 레벨 정보
ServletRuntime InvocationTotalCount, ExecutionTimeAverage Servlet 처리량
⸻
7. 시각화 예시 (Grafana)
• JDBC Pool Dashboard: 활성 커넥션, 풀 사용률, 커넥션 오류
• Thread Pool Dashboard: 현재 실행 중 스레드 수, 대기 큐 수
• JMS Queue Dashboard: 대기 메시지 수, 소비자 수, 처리 속도
• JVM Dashboard: Heap/NonHeap 사용률, GC 빈도, CPU Time
👉 WebLogic용 Grafana 대시보드 JSON은 community template 또는 직접 설정 가능
⸻
8. 보안 및 운영 팁
항목 조치
인증 계정 최소화 readOnly 권한만 가진 WebLogic 사용자 생성
노출 포트 제한 내부망 또는 reverse proxy를 통한 접근 제한
JVM 리소스 사용 Java Agent는 약간의 메모리 오버헤드 발생 (100~200MB 수준)
고가용성 구성 WebLogic 클러스터마다 JMX Exporter를 개별 구성 필요
⸻
✅ 결론
WebLogic의 JMX MBean은 운영 상태를 가장 정확하게 반영하는 진단 지표입니다.
Spring Boot Actuator만으로 부족한 WebLogic 고유 리소스에 대한 모니터링은
JMX Exporter + Prometheus + Grafana 구성을 통해 매우 정교하게 구축할 수 있습니다.
이 방식은 다음과 같은 상황에 특히 유효합니다:
• 운영 환경에서 JDBC 풀 부족 문제 추적
• WebLogic ThreadPool의 병목 탐지
• SLA 기반 알람 설정 (e.g. ActiveConnections > 90% 시 Slack 알림)
카테고리 없음