1. 개요: WebLogic + Spring Boot 환경에서 Prometheus로 관측성 확보하기
WebLogic 서버 위에서 구동되는 Spring Boot 애플리케이션은 일반적인 내장 톰캣 기반 앱과 달리, 기본적인 메트릭 수집 방식이 제한적일 수 있습니다.
이를 해결하기 위해 Spring Boot의 Actuator와 Micrometer(Prometheus 연동기)를 통해 Prometheus-Friendly한 메트릭 엔드포인트를 노출할 수 있으며,
이를 WebLogic 네트워크 구조에 맞게 수집∙보안∙분리하는 방식으로 통합합니다.
⸻
2. 구성도
graph LR
A[Spring Boot App on WebLogic]
B[Actuator /actuator/prometheus]
C[WebLogic Proxy or Firewall]
D[Prometheus Server]
E[Grafana]
A --> B --> C --> D --> E
⸻
3. Micrometer 기반 Prometheus 연동 방법
① 의존성 추가 (Gradle 기준)
dependencies {
implementation 'io.micrometer:micrometer-registry-prometheus'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
}
② application.yml 설정
management:
endpoints:
web:
exposure:
include: prometheus
endpoint:
prometheus:
enabled: true
metrics:
export:
prometheus:
enabled: true
③ 결과 확인
/actuator/prometheus 경로에 접근하면 다음과 같은 Prometheus 형식의 응답이 나옵니다:
# HELP jvm_memory_used_bytes The amount of used memory
# TYPE jvm_memory_used_bytes gauge
jvm_memory_used_bytes{area="heap",id="Survivor Space",} 3.2E7
⸻
4. WebLogic 환경에서 보안적으로 구성하기
항목 설명
내부망 포트 전용 설정 management.server.port: 9001, localhost only
IP 기반 화이트리스트 WebLogic Proxy, Web Filter, Spring Security로 제한
Basic 인증 도입 actuator path에 인증 적용 (단 Prometheus가 인증 처리 가능해야 함)
Ingress 구성 시 /actuator/prometheus만 외부 노출 + CORS 제한 필수
⸻
5. Prometheus 설정 예시
scrape_configs:
- job_name: 'weblogic-springboot-app'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['192.168.10.20:9001']
⸻
6. 확장 구성 방안
확장 요소 설명
Grafana 대시보드 JVM Memory, CPU, GC, DB ConnectionPool 등 시각화
Alertmanager 연동 GC Time, Heap Memory 등 임계치 초과 시 Slack 알림
Spring Boot + WebLogic MBean 연계 Actuator 외 WebLogic 자체 MBean도 Prometheus에 수집 (JMX Exporter)
Multi-tenant Metrics 분리 Application Tag 또는 Team Label별로 집계 분리 가능
⸻
✅ 결론
• /actuator/prometheus는 WebLogic 환경에서도 Prometheus 메트릭 수집을 위한 표준 포인트로 활용 가능
• 네트워크 보안·인증 설정이 반드시 필요하며, 다른 actuator 엔드포인트와의 경로 분리 및 최소 노출 원칙 적용이 중요
• Prometheus 수집기, Alertmanager, Grafana를 통해 WebLogic + Spring Boot 환경에서도 엔터프라이즈 수준의 모니터링 체계 구성 가능
⸻
카테고리 없음