본문 바로가기

Study Information Technology

Spring Boot와 Actuator 시스템 모니터링 및 관리의 모든 것

728x90
반응형

Spring Boot와 Actuator: 시스템 모니터링 및 관리의 모든 것

Overview

Spring Boot Actuator는 Spring Boot 애플리케이션의 모니터링 및 관리를 용이하게 해주는 강력한 도구입니다. Actuator를 사용하면 애플리케이션의 상태를 실시간으로 모니터링하고, 다양한 관리 작업을 쉽게 수행할 수 있습니다. 이번 글에서는 Spring Boot Actuator의 주요 기능, 설정 방법, 주요 엔드포인트와 사용 예시, 그리고 발생할 수 있는 오류와 그 해결 방법에 대해 자세히 설명하겠습니다.

1. Spring Boot Actuator란?

Spring Boot Actuator는 Spring Boot 애플리케이션에 대한 상태를 모니터링하고 관리하는 데 유용한 여러 기능을 제공하는 라이브러리입니다. Actuator는 다음과 같은 기능을 제공합니다:

  • 애플리케이션의 건강 상태 확인
  • 메트릭 수집 및 시각화
  • 애플리케이션 환경 정보 제공
  • 엔드포인트를 통한 애플리케이션의 설정 및 관리

이러한 기능을 통해 개발자는 애플리케이션의 상태를 실시간으로 점검하고, 문제가 발생했을 때 신속하게 대응할 수 있습니다.

2. Spring Boot Actuator 설정

2.1. 의존성 추가

Spring Boot Actuator를 사용하기 위해서는 pom.xml 파일에 다음과 같은 의존성을 추가해야 합니다.

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

위의 의존성을 추가하면 Actuator가 제공하는 다양한 기능을 사용할 수 있습니다.

2.2. 기본 설정

기본적으로 Actuator는 여러 유용한 엔드포인트를 제공하지만, 필요한 엔드포인트만을 활성화하도록 설정할 수 있습니다. application.properties 또는 application.yml 파일에서 설정을 조정할 수 있습니다.

# application.properties 예시
management.endpoints.web.exposure.include=health,info

이 설정은 healthinfo 엔드포인트만 활성화합니다.

2.3. 엔드포인트 접근 제어

Actuator 엔드포인트는 기본적으로 보호되지 않으므로, 보안이 필요한 경우 접근 제어를 설정해야 합니다. Spring Security를 사용하여 엔드포인트에 대한 인증과 권한을 설정할 수 있습니다.

# application.properties에서 보안 설정 예시
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
spring.security.user.name=admin
spring.security.user.password=secret

이 설정은 모든 엔드포인트를 공개하고, admin 사용자로 로그인할 수 있도록 설정합니다.

3. 주요 Actuator 엔드포인트

3.1. /actuator/health

/actuator/health 엔드포인트는 애플리케이션의 건강 상태를 확인할 수 있습니다. 이 엔드포인트는 애플리케이션의 기본적인 상태를 UP, DOWN, 또는 UNKNOWN으로 표시합니다.

예시:

{
  "status": "UP",
  "components": {
    "diskSpace": {
      "status": "UP",
      "details": {
        "total": 1024000000,
        "free": 524288000,
        "threshold": 104857600
      }
    }
  }
}

이 응답은 애플리케이션이 정상적으로 작동 중임을 나타냅니다.

3.2. /actuator/info

/actuator/info 엔드포인트는 애플리케이션의 메타데이터를 제공합니다. 이 엔드포인트는 버전 정보, 빌드 시간, 그리고 애플리케이션에 대한 기타 유용한 정보를 포함할 수 있습니다.

예시:

{
  "app": {
    "name": "Sample Application",
    "version": "1.0.0",
    "description": "A sample Spring Boot application."
  }
}

이 응답은 애플리케이션에 대한 기본 정보를 제공합니다.

3.3. /actuator/metrics

/actuator/metrics 엔드포인트는 애플리케이션의 다양한 메트릭을 제공합니다. 예를 들어, HTTP 요청의 처리 시간, 데이터베이스 쿼리의 개수 등을 모니터링할 수 있습니다.

예시:

{
  "jvm.memory.max": 2147483648,
  "http.server.requests": {
    "count": 10,
    "totalTime": 2000
  }
}

이 응답은 JVM의 메모리 최대 크기와 HTTP 요청 처리에 대한 메트릭 정보를 포함합니다.

4. 발생 가능한 오류와 해결 방법

4.1. 404 Not Found 오류

문제: 특정 Actuator 엔드포인트에 접근할 때 404 Not Found 오류가 발생할 수 있습니다.

원인: 엔드포인트가 활성화되어 있지 않거나, URL이 잘못된 경우 발생합니다.

해결 방법: application.properties 파일에서 엔드포인트 노출 설정을 확인하고, 올바른 URL로 접근하고 있는지 확인합니다.

management.endpoints.web.exposure.include=*

4.2. 403 Forbidden 오류

문제: Actuator 엔드포인트에 접근할 때 403 Forbidden 오류가 발생할 수 있습니다.

원인: 보안 설정에 의해 접근이 차단된 경우입니다.

해결 방법: Spring Security 설정을 검토하고, 적절한 권한을 부여하거나 사용자 인증 정보를 확인합니다.

spring.security.user.name=admin
spring.security.user.password=secret

참고문서

  1. Spring Boot Actuator 공식 문서
  2. Spring Boot Actuator 엔드포인트 설명
  3. Spring Security와 Actuator 통합

이 문서들은 Spring Boot Actuator의 공식 문서로, Actuator의 모든 기능과 설정 방법에 대한 자세한 설명을 제공합니다.

728x90
반응형