본문 바로가기
카테고리 없음

✅ WebLogic 기반 Spring Boot 애플리케이션의 관측성 통합 전략

by frontier12 2025. 5. 30.



– Prometheus, Grafana, 그리고 WebLogic JMX 연계까지



1. 목적

WebLogic 위에 배포된 Spring Boot 애플리케이션은 일반적인 내장 톰캣 환경보다 운영 가시성이 떨어질 수 있습니다.
이를 보완하기 위해 Prometheus를 통해 애플리케이션 메트릭과 WebLogic JVM 메트릭을 통합 수집하고, Grafana로 시각화하는 구조를 구축합니다.



2. 전체 아키텍처

graph LR
  A[Spring Boot on WebLogic] -->|/actuator/prometheus| B(Prometheus)
  C[WebLogic JMX Exporter (Java Agent)] --> B
  B --> D(Grafana)
  B --> E(Alertmanager)




3. 수집 대상별 구성

대상 메트릭 수집 방식 주요 수집 항목 주의 사항
Spring Boot /actuator/prometheus CPU, GC, HTTP 요청 수, DB Pool 보안 설정 필수
WebLogic JMX Exporter (Port 9999 등) ThreadPool, JDBC, JMS 상태 Java Agent 방식
OS/Infra node_exporter CPU, Disk, Network 시스템 리소스 보완




4. Prometheus 설정 예시

scrape_configs:
  - job_name: 'spring-app'
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['192.168.10.20:8081']
  - job_name: 'weblogic-jmx'
    static_configs:
      - targets: ['192.168.10.20:9999']
  - job_name: 'node'
    static_configs:
      - targets: ['192.168.10.20:9100']




5. Grafana 대시보드 설계

📊 Spring Boot Metrics
• 요청 처리 시간 (http_server_requests_seconds_count)
• DB 커넥션 상태 (hikaricp_connections_active)
• 애플리케이션 기동 시간, 오류 수

📊 WebLogic JVM Metrics
• JDBC 커넥션 풀 가용성
• ThreadPool 사용률
• JMS 대기열 상태

📊 시스템 자원
• CPU 사용률
• 디스크 I/O
• 시스템 메모리 변화



6. 알림(Alerts) 구성

Alertmanager 조건 예시

조건 알림 기준 비고
GC Time jvm_gc_pause_seconds_sum > 0.3 Slack 알림
DB Pool hikaricp_connections_active > 80% 가용성 경고
WebLogic Thread weblogic_thread_pool_active > 90% 병목 경고

Slack, Email, Webhook 등 원하는 알림 채널과 연계 가능



7. 고급 운영 전략

전략 설명
/actuator/prometheus 전용 reverse proxy 구성 /actuator 전체를 노출하지 않고 필요한 경로만 reverse proxy 처리
Role-based Grafana Dashboard 팀 또는 서비스별 권한 기반 대시보드 분리
Multi-tenancy job=, instance= 외 custom label 활용으로 대시보드 필터링
로그와 메트릭 연동 Promtail, Loki, ELK 연동하여 로그 기반 alert 조합




✅ 결론

WebLogic과 Spring Boot의 복합 환경에서도 Prometheus + Grafana 스택을 통해
애플리케이션 / JVM / 시스템 리소스를 통합 관측할 수 있으며,
운영단의 문제 탐지, 병목 분석, SLA 이탈 조기 대응이 모두 가능해집니다.