1. Spring Boot Actuator란?
- Spring Boot Actuator는 운영 환경에서 애플리케이션을 모니터링하고 관리하기 위한 다양한 기능을 제공하는 Spring Boot의 하위 프로젝트입니다.
- 개발자와 운영자가 애 플리케이션의 상태를 실시간으로 파악하고 관리할 수 있도록 도와주는 필수적인 도구입니다.
2. 주요 기능 개요
2.1 엔드포인트 (Endpoints)
- 애플리케이션의 상태와 정보를 확인할 수 있는 다양한 기능 제공
- health, metrics, info 등 다양한 내장 엔드포인트 제공
- 커스텀 엔드포인트 구현 가능
- 각 엔드포인트는 HTTP 또는 JMX를 통해 접근 가능
- 예시 health: 애플리케이션 건강 상태 확인
- HTTP:
/actuator/health
- JMX:
org.springframework.boot:type=Endpoint,name=Health
- 자세한 내용은 Endpoint 참고
2.2 HTTP 모니터링
/actuator
기본 경로로 모든 엔드포인트 접근 가능
- 예:
/actuator/health
, /actuator/metrics
- RESTful API 형태로 데이터 제공
- 웹 브라우저나 HTTP 클라이언트로 손쉽게 접근
2.3 JMX 모니터링
- 모든 엔드포인트를 JMX MBeans 형태로도 제공
- JConsole, VisualVM 등 Java 모니터링 도구로 접근
- 원격에서도 실시간 모니터링 가능
- 기본적으로 활성화되어 있지 않으므로 별도 설정 필요
spring.jmx.enabled=true
설정으로 활성화 필요
2.4 관찰성 (Observability)
- Spring Boot Actuator는 애플리케이션의 관찰성을 위한 핵심 기능을 제공합니다
- 로깅, 메트릭스, 트레이스의 세 가지 핵심 요소를 통합 제공
- Micrometer를 통한 통합된 관찰성 API 제공
- 각 요소는 Actuator 엔드포인트를 통해 외부에서 접근 가능
- 메트릭스:
/actuator/metrics
- 로깅:
/actuator/loggers
- 트레이스: Zipkin, Jaeger 등과 연동
- OpenTelemetry 지원으로 표준화된 관찰성 구현
- 실행 중인 애플리케이션의 내부 상태를 상세히 모니터링 가능
2.5 로거 (Loggers)
- 런타임에서 로그 레벨 동적 조정
- 로거 설정 확인 및 수정
- 로그 출력 패턴 관리
- Logger 참고