스프링 부트 액추에이터는 HTTP 엔드포인터나 JMX를 활요앻 애플리케이션을 모니터링하고 관리할 수 있는 기능을 제공한다.
JMX(Java Management Extensions)는 실행 중인 애플리케이션의 상태를 모니터링하고 설정을 변경할 수 있게 해주는 API이다. JMX를 통해 리소스 관리를 하려면 MBeans(Managed Beans)를 생성해야 한다.
1. 엔드포인트
액추에이터의 엔드포인트는 애플리케이션의 모니터링을 사용하는 경로다. 스프링 부트에 여러 내장 엔드포인트가 포함되어 있으며, 커스텀 엔드포인트를 추가할 수 있다.
액추에이터를 추가하면 기본적으로 엔드포인트 URL로 /actuator가 추가되며 이 뒤에 경로를 추가해 상세 내역에 접근한다.
엑추에이터의 기본 엔드포인트 테이블
ID | 설명 |
auditevents | 호출된 Audit 이벤트 정보를 표시한다. AuditEventRepository가 필요하다 |
beans | 애플리케이션에 있는 모든 스프링 빈 리스트를 표시 |
caches | 사용 가능한 캐시 표시 |
conditions | 자동 구성 조건 내역 생성 |
configprops | @ConfigurationProperties의 속성 리스트 표시 |
env | 애플리케이션에서 사용할 수 있는 환경 속성 표시 |
health | 애플리케이션의 상태 정보 표시 |
httptrace | 가장 최근에 이뤄진 100건의 요청 기록 표시, HttpTraceRepository 빈이 필요 |
info | 애플리케이션의 정보 표시 |
엔드포인트는 활성화 여부와 노출 여부를 설정할 수 있다. 활성화는 기능 자체를 활성화할 것인지를 결정하는 것으로, 비활성화된 엔드포인트는 애플리케이션 컨텍스트에서 완전히 제거된다.
엔드포인트를 활성화하려면 applicaiton.properties 파일에 속성을 추가하면 된다.
엔드포인트는 애플리케이션에 관한 민감한 정보를 포함하고 있으므로 노출 설정을 신중하게 고려해야 한다.
2. 액추에이터 기능 살펴보기
(1) 애플리케이션 기본 정보(/info)
액추에이터의 /info 엔드포인트를 활용하면 가동 중인 애플리케이션의 정보를 볼 수 있다.
(2) 애플리케이션 상태(/health)
/health 엔드포인트를 활용하면 애플리케이션의 상태를 확인할 수 있다.
status 속성에서 확인할 수 있는 상태 지표는
- UP
- DOWN
- UNKNOWN
- OUT_OF_SERVICE
가 있다. 이 결과는 주로 네트워크 계층 중 L4(Loadbalancing) 레벨에서 애플리케이션의 상태를 확인하기 위해 사용된다.
모든 status의 값이 UP이어야 애플리케이션의 상태가 UP으로 표시된다. 만약 DOWN 상태인 항목이 있다면 애플리케이션의 상태도 DOWN으로 표기되며 HTTP 상태 코드도 변경된다.
(3) 빈 정보 확인(/beans)
/beans 엔드포인트를 사용하면 스프링 컨테이너에 등록된 스프링 빈의 전체 목록을 표시할 수 있다.
이 엔드포인트는 JSON 형식으로 빈의 정보를 반환한다.
(4) 스프링 부트의 자동설정 내역 확인(/conditions)
스프링 부트의 자동설정(AutoConfiguration) 조건 내역을 확인하기 위해 사용한다.
출력 내용은 크게 positiveMatches 와 negaiveMatches 속성으로 구분된다.
(5) 스프링 환경변수 정보(/env)
/env 엔드포인트는 스프링의 환경변수 정보를 확인하는데 사용된다. 기본적으로 application.properties 파일의 변수들이 표시되며 OS,JVM의 환경변수도 함께 표시된다.
(6) 로깅 레벨 확인(/loggers)
애플리케이션의 로깅 레벨 수준이 어떻게 설정돼 있는지 확인하기 위해 /loggers/ 엔드포인트를 사용한다.
'SpringBoot' 카테고리의 다른 글
SpringBoot 3.x 스프링 시큐리티 (Spring security) (0) | 2024.03.11 |
---|---|
서버 간 통신 (0) | 2024.03.10 |
예외 처리 (0) | 2024.02.28 |
유효성 검사 (1) | 2024.02.28 |
연관관계 매핑 (0) | 2024.02.22 |