Spring Boot Actuator

헨도·2025년 3월 31일
0

SpringBoot

목록 보기
30/30
post-thumbnail

Spring Boot Actuator 란?

  • Spring Boot Actuator 는 Spring Boot 애플리케이션의 상태와 성능을 모니터링하고 관리할 수 있도록
    다양한 엔드포인트를 제공하는 기능입니다.
  • Actuator 는 헬스 체크, 메트릭스, 환경 정보, 로그 정보 등 여러 가지 중요한 정보를 쉽게 확인할 수 있도록 도와줍니다.

Actuator 의존성 추가

implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-web'

Actuator 엔드포인트

  • Actuator 는 기본적으로 여러 엔드포인트를 제공합니다.
    이러한 엔드포인트는 /actuator 경로 하위에 위치하며, 각각의 엔드포인트는 다양한 정보를 제공합니다.
    - /actuator/health - 애플리케이션 상태 확인
    - /actuator/metrics - 애플리케이션의 메트릭 정보 제공
    - /actuator/loggers - 로깅 설정을 조회하고 변경
    - /actuator/env - 환경 변수와 설정 정보를 확인
    - /actuator/beans - 애플리케이션 컨텍스트에 있는 빈 목록 확인
    - /actuator/threaddump - 스레드 덤프를 확인
    - /actuator/httptrace - 최근 HTTP 요청 및 응답 추적

Actuator 엔드포인트 설정

  • 기본적으로 모든 엔드포인트가 활성화되어 있지 않을 수 있다.
    application.properties 파일을 사용하여 필요한 엔드포인트를 활성화하거나 비활성화할 수 있다.
  • 설정 옵션 설명
    • never - 헬스 체크 상세 정보를 절대 표시하지 않습니다.

    • always - 모든 사용자에게 헬스 체크 상세 정보를 항상 표시합니다.

    • when_authorized - 인증된 사용자에게만 헬스 체크 상세 정보 표시

      # 모든 엔드포인트 노출 설정
      management.endpoints.web.exposure.include = *
      
      # 헬스 체크 엔드포인트 상세 정보 표시 설정
      management.endpoint.health.show-details = always

주의사항 및 권장사항

보안

  • 모든 엔드포인트를 노출하는 설정은 개발 및 테스트 환경에서는 유용할 수 있지만, 운영 환경에서는 보안 위험을 증가시킬 수 있습니다.
    필요한 엔드포인트만 노출하는 것을 권장
  • 헬스 체크 엔드포인트에서 상세 정보를 항상 노출하는 설정 역시 운영 환경에서는 민감한 정보를 포함할 수 있으므로, show-details 설정을 when_authorized 옵션을 사용하는 것이 좋다.

엔드포인트 보호

  • actuator 접근 포트만 다른 포트로 설정하여 보호할 수 있다.
    # 애플리케이션의 기본 포트를 8080 으로 설정
    server.port = 8080
    
    # Actuator 엔드포인트를 19090 포트에서 서비스하도록 설정
    management.server.port = 19090
  • Spring Security 를 사용하여 민감한 엔드포인트에 접근 제어를 설정하는 것이 좋다.
profile
Junior Backend Developer

0개의 댓글