Spring Boot Actuator는 운영 중인 앱의 상태를 HTTP 엔드포인트로 보여주는 모듈이다. 헬스 체크, 지표, 설정값, 로그 레벨, 등록된 빈 같은 정보를 /actuator/* 아래에 노출한다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>자주 쓰는 엔드포인트
health: 앱과 DB·디스크 등 의존 대상의 상태. 로드밸런서·쿠버네티스 핵심 개념의 liveness·readiness 프로브(probe)로 쓴다metrics,prometheus: JVM(Java Virtual Machine) 메모리, 요청 수·지연 시간 같은 지표(metrics, Micrometer). 모니터링 시스템이 긁어 간다info: 빌드 버전, git 커밋loggers: 실행 중에 로그 레벨을 바꾼다(로그 레벨과 Logback)env,configprops,beans,conditions: 설정값과 빈, 자동 설정 판단 결과(스프링 부트 자동 설정)
노출과 보안
management:
endpoints:
web:
exposure:
include: health, info, prometheus
base-path: /internal/actuator
endpoint:
health:
show-details: when-authorized- 기본으로는 HTTP에
health만 노출된다.include: "*"는 개발에서만 쓴다.env·heapdump에는 비밀값이 섞일 수 있다 - 운영에서는 관리 포트를 따로 두거나(
management.server.port), 스프링 시큐리티로 관리자만 접근하게 막는다(시큐리티 필터체인)
Spring Boot Admin
여러 앱의 Actuator 정보를 모아 웹 UI(User Interface)로 보여주는 서드파티 프로젝트다. Admin 서버를 따로 띄우고, 각 앱은 클라이언트 설정(spring.boot.admin.client.url)으로 자동 등록된다. 별도 앱이라 포트를 따로 잡는다.
컨테이너 오케스트레이터가 헬스 체크로 죽은 인스턴스를 교체하는 흐름은 kubectl 디버깅 치트시트에서 상태를 읽는 법과 함께 보면 좋다.
출처: Spring Boot 문서: Actuator · Exposing Endpoints · Security · Kubernetes Probes