액츄에이터
서비스 운영에서 '모니터링'은 장애 대응의 핵심이다. 단순히 기능을 개발하는 것을 넘어, 운영 단계에서 서비스가 살아있는지, 로그 설정은 정상인지, 커넥션 풀은 얼마나 사용되는지 확인하는 비기능적 요소들을 '프로덕션 준비 기능'이라 부른다. 스프링 부트 액츄에이터는 이러한 지표나 감사 기능을 편리하게 제공한다.
1) 액츄에이터 시작하기
액츄에이터를 사용하려면 프로젝트 설정 (`build.gradle`)에 의존성을 추가해야 한다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator'
}
설정 후 서버를 실행하고 `http://localhost:8080/actuator`에 접속하면 사용 가능한 엔드포인트 목록을 확인할 수 있다.
2) 엔드포인트 설정
액츄에이더 기능을 사용하기 위해서는 2가지 단계가 필요하다.
- 활성화 : 해당 기능 자체를 켤지 끌지 결정
- 노출 : 활성화된 기능을 HTTP나 JMX 어디에 노출할지 결정
모든 엔드포인트를 웹에 노출하는 설정
management:
endpoints:
web:
exposure:
include: "*"
3) 자주 사용하는 핵심 엔드포인트
- `health` : 애플리케이션의 상태를 확인한다. (UP/DOWN) db, 디스크 공간 등 상세 정보를 확인할 수 있다.
- `info` : 자바 버전, OS 정보, 빌드 정보 등 애플리케이션의 기본 정보를 노출한다.
- `loggers` : 현재 로깅 설정을 확인하고 서버 재시작 없이 실시간으로 로그 레벨을 변경할 수 있다.
실시간 로그 레벨 변경하기
운영 중 장애가 발생했을 때 서버를 끄지 않고 `DEBUG`로그를 남기고 싶다면 ?
-> `loggers` 엔드포인트를 활용하면 된다.
Postman을 사용하여
- Method : `POST`
- URL : `http://localhost:8080/actuator/loggers`
- Body (JSON) : `{"configuredLevel" : "TRACE"}`
추가) 보안 설정은 필수 !
액츄에이터는 내부 정보를 많이 노출하므로 보안이 매우 중요하다.
1) 포트 분리 : 액츄에이터 전용 포트를 설정하여 내부망에서만 접근하게 한다. (`management.server.port=9292`)
2) 인증 설정 : 스프링 시큐리티를 통해 인증된 사용자만 접근 가능하도록 제한해야 한다.
3) 경로 변경 : 기본 `/actuator` 경로를 다른 이름으로 변경할 수 있다. (`management.endpoints.web.base-path : "/manage"`)
'Spring' 카테고리의 다른 글
| [Spring] JDBC(Java Database Connectivity) (0) | 2025.12.20 |
|---|---|
| [Spring] @RequestBody JSON 바인딩 원리 (0) | 2025.11.28 |
| [Spring] Spring AI와 LangChain4j 비교 (0) | 2025.11.24 |
| [Spring] 임베디드 타입 (@Embeddable, @Embedded) (0) | 2025.11.10 |
| [Spring] Lombok 이해하기 - @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor (0) | 2025.11.04 |
