본문 바로가기

Study Information Technology

Spring Boot Admin을 이용한 여러 Spring Boot 애플리케이션 모니터링과 관리

728x90
반응형

Spring Boot Admin을 이용한 여러 Spring Boot 애플리케이션 모니터링과 관리

Overview

Spring Boot Admin은 여러 개의 Spring Boot 애플리케이션을 모니터링하고 관리하는 데 매우 유용한 도구입니다. 이 도구는 Spring Boot 애플리케이션의 상태를 시각적으로 제공하며, 관리 작업을 쉽게 수행할 수 있게 도와줍니다. Spring Boot Admin은 애플리케이션의 헬스 체크, 메트릭, 환경 정보 등을 실시간으로 모니터링하고, 애플리케이션의 상태를 빠르게 파악할 수 있게 합니다. 이 글에서는 Spring Boot Admin을 설정하고 사용하는 방법을 상세하게 설명하겠습니다.

Spring Boot Admin의 주요 기능

  1. 헬스 체크 (Health Check)
  • Spring Boot Admin은 애플리케이션의 헬스 체크 상태를 실시간으로 모니터링합니다. 헬스 체크는 애플리케이션의 건강 상태를 확인하는 데 사용되며, 예를 들어 데이터베이스 연결 상태, 메시지 브로커 상태 등을 포함합니다.
  • 예시: 애플리케이션의 헬스 체크 페이지를 통해 데이터베이스가 정상적으로 연결되어 있는지, 외부 서비스와의 통신이 원활한지 등을 확인할 수 있습니다.
  1. 메트릭 (Metrics)
  • 애플리케이션의 성능과 리소스 사용량을 모니터링할 수 있습니다. Spring Boot Admin은 메트릭 정보를 시각적으로 제공하여 애플리케이션의 성능을 쉽게 분석할 수 있게 합니다.
  • 예시: 메모리 사용량, 스레드 수, 요청 처리 시간 등을 시각화하여 성능 병목 지점을 식별하는 데 도움이 됩니다.
  1. 환경 정보 (Environment Info)
  • 애플리케이션의 설정 정보를 확인할 수 있습니다. 이 정보는 애플리케이션의 설정 값, 시스템 프로퍼티, 자바 시스템 속성 등을 포함합니다.
  • 예시: 애플리케이션의 데이터베이스 URL, 포트 번호, 로깅 수준 등을 확인하여 설정 문제를 진단할 수 있습니다.
  1. 로그 (Logs)
  • 실시간 로그를 확인하고 필터링할 수 있습니다. 이를 통해 애플리케이션에서 발생하는 문제를 빠르게 진단할 수 있습니다.
  • 예시: 에러 로그를 실시간으로 확인하고 문제를 즉시 해결할 수 있습니다.

Spring Boot Admin 설정 및 사용

1. Spring Boot Admin Server 설정

먼저, Spring Boot Admin 서버를 설정해야 합니다. 이 서버는 여러 개의 Spring Boot 애플리케이션을 모니터링하고 관리하는 역할을 합니다.

pom.xml (Maven) 설정

<dependencies>
  <dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>2.7.0</version>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
</dependencies>

application.properties 설정

spring.boot.admin.client.url=http://localhost:8080

@SpringBootApplication 클래스

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableAdminServer
public class AdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(AdminServerApplication.class, args);
}
}

위와 같이 설정한 후, http://localhost:8080에서 Spring Boot Admin 서버가 실행됩니다.

2. Spring Boot Admin Client 설정

다음으로, 모니터링할 Spring Boot 애플리케이션에 Spring Boot Admin Client를 추가합니다.

pom.xml (Maven) 설정

<dependencies>
  <dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.7.0</version>
  </dependency>
</dependencies>

application.properties 설정

spring.boot.admin.client.url=http://localhost:8080
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always

이 설정으로 애플리케이션은 Admin Server에 자신을 등록하고 상태 정보를 전송하게 됩니다.

Spring Boot Admin 사용 시 유의사항

  1. 보안 설정
  • Spring Boot Admin은 애플리케이션의 상태 정보를 노출하므로, 보안 설정이 필요합니다. 기본적으로 Spring Security와 통합하여 인증과 권한 부여를 설정할 수 있습니다.
  • 예시: Spring Security를 설정하여 관리자만 Admin Server에 접근할 수 있도록 제한할 수 있습니다.
  1. 네트워크 설정
  • Admin Server와 Client 간의 네트워크 통신이 원활히 이루어져야 합니다. 방화벽이나 프록시 설정을 확인하여 통신이 차단되지 않도록 해야 합니다.
  • 예시: Admin Server가 클라이언트 애플리케이션에 접근할 수 있는지 확인하는 것이 필요합니다.
  1. 애플리케이션 등록
  • Admin Client가 Admin Server에 등록되지 않는 경우, 설정 오류가 있을 수 있습니다. 클라이언트 애플리케이션의 spring.boot.admin.client.url 설정을 확인하고, Admin Server의 URL이 정확한지 확인해야 합니다.
  • 예시: spring.boot.admin.client.url에 설정된 URL이 Admin Server의 주소와 일치하는지 확인합니다.

에러와 해결 방법

  1. 404 Not Found 에러
  • 문제: 클라이언트 애플리케이션이 Admin Server의 URL에 접근하지 못할 때 발생합니다.
  • 해결 방법: Admin Server의 URL이 올바르게 설정되어 있는지 확인하고, 서버가 실행 중인지 확인합니다.
  1. 401 Unauthorized 에러
  • 문제: 인증이 필요한 Admin Server에 인증 없이 접근하려고 할 때 발생합니다.
  • 해결 방법: Spring Security를 설정하여 인증 정보를 제공하거나, 인증 설정을 확인합니다.

참고문서

이 문서들은 Spring Boot Admin의 설치, 설정 및 사용에 대한 자세한 정보를 제공하며, 다양한 구성 옵션과 문제 해결 방법에 대한 설명을 포함하고 있습니다.

728x90
반응형