1. Actuator Endpoints 소개
- Spring Boot Actuator의 엔드포인트는 애플리케이션을 모니터링하고 상호작용할 수 있게 해주는 핵심 기능입니다.
- 각 엔드포인트는 특정한 모니터링 또는 관리 기능을 제공하며, HTTP 또는 JMX를 통해 접근할 수 있습니다.
2. 주요 엔드포인트 목록
2.1 핵심 엔드포인트
- health (
/actuator/health
)- 애플리케이션의 건강 상태 정보 제공
- 데이터베이스 연결, 디스크 공간 등 주요 시스템 상태 확인
- 쿠버네티스 같은 컨테이너 환경의 라이브니스/레디니스 프로브로 활용
- info (
/actuator/info
)- 애플리케이션의 기본 정보 제공
- Git 정보, 빌드 정보, 환경 정보 등 포함
- 커스텀 정보 추가 가능
- metrics (
/actuator/metrics
)- 애플리케이션의 각종 메트릭 정보 제공
- JVM 메모리 사용량, CPU 사용량, HTTP 요청 통계 등
- Micrometer 통합으로 다양한 모니터링 시스템 지원
2.2 관리 및 모니터링 엔드포인트
- beans (
/actuator/beans
)- 스프링 컨테이너에 등록된 모든 빈 목록 제공
- 빈의 타입, 의존성 관계 등 상세 정보 포함
- conditions (
/actuator/conditions
)- 자동 구성 조건 평가 결과 제공
- 특정 빈이나 설정이 활성화/비활성화된 이유 파악 가능
- configprops (
/actuator/configprops
)@ConfigurationProperties
설정 정보 조회- 현재 적용된 설정값 확인 가능
2.3 로깅 및 디버깅 엔드포인트
- loggers (
/actuator/loggers
)- 로깅 레벨 조회 및 실 시간 변경 기능
- 패키지/클래스별 로그 레벨 동적 제어
- threaddump (
/actuator/threaddump
)- 스레드 덤프 정보 제공
- 데드락, 병목 현상 등 문제 분석에 활용
- heapdump (
/actuator/heapdump
)- JVM 힙 덤프 파일 생성
- 메모리 누수 분석에 활용
3. 엔드포인트 보안 설정
3.1 기본 보안 정책
management:
endpoints:
web:
exposure:
include: health,info # 기본적으로 health와 info만 공개
3.2 Spring Security 통합
@Configuration
public class ActuatorSecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.requestMatcher(EndpointRequest.toAnyEndpoint())
.authorizeRequests()
.requestMatchers(EndpointRequest.to("health", "info")).permitAll()
.anyRequest().hasRole("ACTUATOR_ADMIN");
return http.build();
}
}
4. 엔드포인트 커스터마이징
4.1 Health 엔드포인트 커스터마이징
@Component
public class CustomHealthIndicator implements HealthIndicator {
@Override
public Health health() {
try {
// 건강 검사 로직
return Health.up()
.withDetail("customCheck", "OK")
.build();
} catch (Exception e) {
return Health.down()
.withException(e)
.build();
}
}
}
4.2 Info 엔드포인트 커스터마이징
info:
app:
name: @project.name@
version: @project.version@
description: @project.description@
5. 모범 사례 및 주의사항
5.1 운영 환경 설정
- 필요한 엔드포인트만 선택적으로 노출
- 보안에 민감한 엔드포인트는 적절한 인증/인가 설정
- 메트릭 수집 주기와 보관 기간 최적화
5.2 모니터링 전략
- 핵심 메트릭 식별 및 알람 설정
- 분산 환경에서의 통합 모니터링 구성
- 로그 레벨 관리 전략 수립
6. 정리
- Spring Boot Actuator의 엔드포인트는 운영 환경에서 애플리케이션을 효과적으로 모니터링하고 관리할 수 있게 해주는 강력한 도구입니다.
- 보안을 고려한 적절한 설정과 함께 활용하면 안정적인 운영에 큰 도움이 될 수 있습니다.