2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

스프링 부트의 Actuator를 사용하여 애플리케이션 상태를 모니터링하는 방법은?

_____
Q1: 스프링 부트 Actuator란 무엇인가요?
A1: 스프링 부트 Actuator는 애플리케이션의 상태, 메트릭, 트래픽, 헬스 체크 등 다양한 정보를 노출하여 모니터링과 관리 기능을 제공하는 모듈입니다. 운영 중인 애플리케이션의 내부 상태를 쉽게 파악할 수 있도록 도와줍니다.

Q2: 스프링 부트 Actuator를 프로젝트에 추가하려면 어떻게 하나요?
A2: Maven 기준으로 `spring-boot-starter-actuator` 의존성을 추가하면 됩니다.
```xml

org.springframework.boot
spring-boot-starter-actuator

```
Gradle 사용 시:
```groovy
implementation 'org.springframework.boot:spring-boot-starter-actuator'
```

Q3: Actuator의 기본 헬스 체크 엔드포인트는 무엇인가요?
A3: `/actuator/health` 엔드포인트가 기본 헬스 체크 상태를 제공합니다. 이 URL에 GET 요청을 보내면 애플리케이션의 기본 상태(UP, DOWN 등)를 JSON 형태로 확인할 수 있습니다.

Q4: Actuator 엔드포인트는 기본적으로 외부에 노출되나요?
A4: 스프링 부트 2.x 이상부터는 Actuator 엔드포인트가 제한적으로만 공개됩니다. 예를 들어 헬스(health)와 정보(info)는 기본적으로 전체 공개되나, 나머지 엔드포인트는 보안 설정에 따라 다릅니다. `application.properties`에서 노출 설정을 할 수 있습니다.

Q5: 헬스 상태를 상세히 보려면 어떻게 설정하나요?
A5: `application.properties` 또는 `application.yml`에 다음 설정을 추가합니다.

```properties
management.endpoint.health.show-details=always
```
이렇게 하면 `/actuator/health` 호출 시 상세 상태가 표시됩니다.

Q6: Actuator 엔드포인트의 노출 범위는 어떻게 설정하나요?
A6: 다음과 같이 설정할 수 있습니다.
```properties
management.endpoints.web.exposure.include=health,info,metrics
```
필요한 엔드포인트만 콤마로 구분하여 포함시켜 외부에 노출할 수 있습니다. 기본값은 `health,info` 입니다.

Q7: 자체 커스텀 헬스 체크를 추가할 수 있나요?
A7: 네, `HealthIndicator` 인터페이스를 구현하는 빈(Bean)을 등록하여 커스텀 헬스 체크 정보를 추가할 수 있습니다.

```java
@Component
public class CustomHealthIndicator implements HealthIndicator {
@Override
public Health health() {
// 커스텀 상태 점검 로직
boolean healthy = checkMyService();
if (healthy) {
return Health.up().withDetail("MyService", "Available").build();
}
return Health.down().withDetail("MyService", "Not Available").build();
}
}
```

Q8: Actuator를 통한 모니터링 정보를 외부에서 어떻게 확인할 수 있나요?
A8: 기본적으로 HTTP REST API를 통해 엔드포인트들이 노출되므로, `/actuator/health`, `/actuator/metrics`, `/actuator/info` 같은 URL에 브라우저나 curl, Postman 등으로 접근해 확인 가능합니다.

Q9: Actuator에서 제공하는 메트릭 정보는 무엇이 있나요?
A9: CPU 사용량, JVM 메모리, GC 정보, HTTP 요청 메트릭, 힙 히스토그램 등 다양한 메트릭을 제공합니다. `/actuator/metrics` 에서 전체 메트릭 목록을 확인할 수 있고, 특정 메트릭 상세는 `/actuator/metrics/{metricName}` 로 조회합니다.

Q10: Actuator 엔드포인트 보안을 강화하려면 어떻게 하나요?
A10: 스프링 시큐리티(Spring Security)를 적용해 Actuator 엔드포인트에 인증과 권한 제어를 할 수 있습니다. 예를 들어, `/actuator/ ` 경로에 대한 접근 권한을 제한합니다.

```java
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.requestMatchers(EndpointRequest.toAnyEndpoint()).hasRole("ADMIN")
.and()
.httpBasic();
}
```

Q11: Actuator를 통해 애플리케이션 상태를 실시간으로 모니터링할 수 있나요?
A11: 네, 다양한 엔드포인트를 주기적으로 호출하거나, 스프링 부트 Admin 같은 대시보드 도구와 연동하여 실시간 모니터링이 가능합니다.

---

요약:
- `spring-boot-starter-actuator` 의존성 추가
- `/actuator/health` 기본 헬스 상태 확인
- `management.endpoint.health.show-details=always` 로 상세 헬스 정보 노출
- 필요한 엔드포인트만 `management.endpoints.web.exposure.include`로 선택적 노출
- `HealthIndicator` 구현으로 커스텀 상태 점검 추가
- 스프링 시큐리티로 엔드포인트 보안 강화
- REST API 방식으로 쉽게 상태 및 메트릭 모니터링 가능
스프링 부트의 Actuator는 애플리케이션의 상태를 모니터링하고 관리하는 데 유용한 기능을 제공합니다.

Actuator를 사용하면 애플리케이션의 다양한 메트릭, 상태, 환경 정보 등을 쉽게 확인할 수 있습니다.

이번 포스트에서는 스프링 부트 Actuator를 설정하고 사용하는 방법에 대해 알아보겠습니다.

1. 스프링 부트 Actuator 의존성 추가먼저, `pom.xml` 파일에 Actuator 의존성을 추가해야 합니다.

Maven을 사용하는 경우 다음과 같이 추가합니다.

```xml org.springframework.boot spring-boot-starter-actuator```Gradle을 사용하는 경우 `build.gradle` 파일에 다음을 추가합니다.

```groovyimplementation 'org.springframework.boot:spring-boot-starter-actuator'```

2. Actuator 설정Actuator의 기본 설정은 `application.properties` 또는 `application.yml` 파일에서 조정할 수 있습니다.

기본적으로 Actuator는 몇 가지 엔드포인트를 제공하며, 이를 활성화하거나 비활성화할 수 있습니다.

예를 들어, `application.properties` 파일에서 다음과 같이 설정할 수 있습니다.

```propertiesmanagement.endpoints.web.exposure.include=health,infomanagement.endpoint.health.show-details=always```위 설정은 `health`와 `info` 엔드포인트를 활성화하고, `health` 엔드포인트에서 자세한 정보를 표시하도록 설정합니다.



3. 주요 Actuator 엔드포인트Actuator는 여러 유용한 엔드포인트를 제공합니다.

다음은 그 중 일부입니다.

- /actuator/health : 애플리케이션의 건강 상태를 확인합니다.

기본적으로 "UP" 또는 "DOWN" 상태를 반환합니다.

- /actuator/info : 애플리케이션에 대한 메타데이터 정보를 제공합니다.

예를 들어, 버전, 빌드 시간 등을 포함할 수 있습니다.

- /actuator/metrics : 애플리케이션의 메트릭 정보를 제공합니다.

요청 수, 응답 시간 등의 통계를 확인할 수 있습니다.

- /actuator/env : 애플리케이션의 환경 속성을 확인합니다.



4. Actuator 엔드포인트 접근Actuator 엔드포인트는 기본적으로 `/actuator` 경로 아래에 위치합니다.

예를 들어, 애플리케이션이 로컬에서 실행 중이라면 다음과 같이 접근할 수 있습니다.

- 건강 상태 확인: `http://localhost:8080/actuator/health`- 정보 확인: `http://localhost:8080/actuator/info`- 메트릭 확인: `http://localhost:8080/actuator/metrics`

5. 보안 설정Actuator 엔드포인트는 민감한 정보를 포함할 수 있으므로 보안 설정이 필요합니다.

Spring Security를 사용하여 인증 및 권한 부여를 설정할 수 있습니다.

예를 들어, `application.properties` 파일에 다음과 같이 추가하여 기본 인증을 설정할 수 있습니다.

```propertiesspring.security.user.name=userspring.security.user.password=password```이제 엔드포인트에 접근할 때 사용자 이름과 비밀번호를 입력해야 합니다.



6. 커스터마이징Actuator는 기본 제공되는 엔드포인트 외에도 사용자 정의 엔드포인트를 추가할 수 있습니다.

이를 통해 애플리케이션의 특정 요구 사항에 맞게 모니터링 기능을 확장할 수 있습니다.

결론스프링 부트의 Actuator는 애플리케이션의 상태를 모니터링하고 관리하는 데 매우 유용한 도구입니다.

간단한 설정으로 다양한 정보를 제공받을 수 있으며, 보안 설정을 통해 안전하게 사용할 수 있습니다.

Actuator를 활용하여 애플리케이션의 운영 상태를 효과적으로 모니터링해보세요!
작성자: ㅁㅁ [비회원] | 작성일자: 1년 전 2024-08-26 08:20:38
조회수: 163 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.