Skill/spring

spring-boot-starter-actuator

진열사랑 2025. 5. 6. 11:21

spring-boot-starter-actuator는 Spring Boot 애플리케이션의 운영(운용/운영자 관점) 기능을 제공하는 라이브러리입니다.
즉, 모니터링, 헬스 체크, 메트릭, 환경 정보 확인 등을 쉽게 사용할 수 있도록 도와줍니다.

✅ spring-boot-starter-actuator란?

Spring Boot 애플리케이션에 대한 운영 정보와 상태를 REST 엔드포인트로 제공하는 스타터입니다.

운영자가 서버 상태를 모니터링하거나, DevOps 도구(Prometheus, Grafana 등)와 연동할 때 사용됩니다.

🔧 대표 기능들

기능 설명 기본 경로

/actuator/health 애플리케이션의 헬스 상태 /actuator/health
/actuator/info 애플리케이션 정보 (버전, 이름 등) /actuator/info
/actuator/metrics JVM, CPU, HTTP 요청 등 메트릭 /actuator/metrics
/actuator/beans 등록된 Bean 목록 /actuator/beans
/actuator/env 현재 환경 변수 정보 /actuator/env
/actuator/loggers 로그 레벨 조회 및 변경 /actuator/loggers
/actuator/threaddump 쓰레드 덤프 보기 /actuator/threaddump
/actuator/httptrace 최근 HTTP 요청 정보 /actuator/httptrace

⚠️ Spring Boot 2.0부터 /actuator 경로 아래로 모든 엔드포인트가 통합되었습니다.

🔐 보안과 노출 설정

기본적으로 민감한 정보는 외부에 노출되지 않도록 비활성화되어 있습니다.

# application.yml 예시
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always

 

🧪 헬스 체크 활용 예

서비스가 살아있는지 확인할 때:

GET /actuator/health
→ {"status": "UP"}

DataSource, Redis, RabbitMQ 등과 연결 상태까지 자동으로 헬스 리포트에 포함할 수 있습니다.

📦 의존성 추가

Gradle:

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

 

📊 Prometheus & Grafana 연동 (추가 라이브러리)

implementation 'io.micrometer:micrometer-registry-prometheus'
management:
  endpoints:
    web:
      exposure:
        include: health,info,metrics,prometheus

이렇게 하면 /actuator/prometheus 엔드포인트가 생성되고 Prometheus가 수집 가능해집니다.

🏁 정리

항목 설명

목적 Spring Boot 앱 상태를 외부에서 확인 가능하게
주요 기능 헬스 체크, 메트릭, 로그 설정, 환경 정보 등
DevOps 연동 Prometheus, Grafana, ELK, Spring Admin 등과 연동
보안 설정 필요 시 엔드포인트 노출 여부 및 인증 적용 가능