알아가기/Spring

[Spring] Spring Boot Actuator 사용

XEV 2023. 8. 29. 19:49

 

Spring Boot Actuator는 Spring Boot 애플리케이션의 운영과 관리를 돕는 기능을 제공하는 모듈이다. 이 모듈을 사용하면 애플리케이션의 다양한 측면을 모니터링하고 관리할 수 있다. Actuator는 애플리케이션의 상태, 메트릭, 로그, 환경 설정 등에 대한 정보를 노출하며, 개발자나 운영팀이 실시간으로 애플리케이션의 상태를 파악하고 문제를 진단하는 데 도움을 준다.

 

 

 

 

 

주요 기능

1. Application 정보 노출: 애플리케이션의 버전, 이름, 설명 등의 기본 정보를 노출할 수 있다.

2. 메트릭 및 상태 정보: 애플리케이션의 상태를 확인할 수 있는 여러 메트릭과 지표를 노출한다. 예를 들어, HTTP 요청 수, 메모리 사용량, 프로세스 상태 등을 모니터링할 수 있다.

3. 환경 변수와 프로퍼티: 애플리케이션의 환경 변수와 설정된 프로프티 값을 조회할 수 있다. 이를 통해 애플리케이션의 동작을 이해하고 조정할 수 있다.

4. 애플리케이션 로그 레벨 변경: 런타임 중에 로그 레벨을 변경하여 디버깅 및 문제 해결에 도움을 준다.

5. 스레드 덤프: 애플리케이션 내부 스레드 상태의 덤프를 생성하여 데드락과 같은 문제를 진단할 수 있다.

6. HTTP 엔드포인트 제공: Actuator는 HTTP를 통해 다야한 정보를 노출하는 엔드포인트를 제공한다. 이러한 엔드포인트를 통해 모니터링 도구나 관리 도구와 통합할 수 있다.

7. 사용자 정의 엔드포인트: 필요에 따라 사용자 정의 엔드포인트를 생성하여 애플리케이션에 특화된 정보를 노출하거나 관리 작업을 수행할 수 있다.

 

 

 

Spring Boot Actuator는 보안 관련 이슈에 대한 고려가 필요하므로, 애플리케이션을 실제 운영 환경에서 사용하기 전에 적절한 보안 구성을 적용해야한다.

 

 

 

 

 

Spring Boot Actuator 적용

spring intitializr를 이용하여 초기 프로젝트 생성.

이때, Add dependencies를 이용하여 Spring Boot Actuator 추가. 기본적으로 사용하는 Spring Web도 추가.

 

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
    <version>2.5.1</version>
</dependency>

 

 

 

테스트용 hello 컨트롤러 작성.

 

 

 

localhost:8080/hello

GET 요청 정상 확인.

 

 

 

localhost:8080/actuator

actuator 출력 확인.

 

 

 

management.endpoints.web.exposure.include=*

모든 엔드포인트 정보를 표기하기 위해 application.properties 파일 내에 필요 코드 추가.

 

 

localhost:8080/actuator

더 많은 내용이 출력되는지 확인.

 

 

 

`health`를 엔드포인트로 하여 출력 확인

 

 

 

`loggers`를 엔드포인트로 하여 출력 확인.

 

 

 

 

Spring Boot Actuator를 dependency에 추가하고 Actuator의 모든 endpoints를 활성화하는 방법을 알아보았다.