Spring Boot 애플리케이션을 개발하고 관리하는 데 있어 Spring Boot Actuator와 Spring Boot Admin은 필수적인 도구입니다. Actuator는 애플리케이션의 상태, 메트릭, 힙 덤프 등 다양한 정보를 제공하여 문제 진단과 성능 개선에 도움을 주며, Admin은 이러한 정보를 한눈에 보기 쉽도록 웹 기반 UI를 제공합니다. 이 글에서는 Spring Boot 프로젝트에 Spring Boot Admin을 연동하는 과정을 메이븐 의존성 추가부터 상세하게 설명합니다.
1. Spring Boot Actuator 추가
먼저, Spring Boot 프로젝트에 Actuator를 추가해야 합니다. pom.xml 파일에서 다음과 같이 의존성을 추가합니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2. Spring Boot Admin Client 추가
Actuator에서 제공하는 정보를 Admin 서버로 전송하기 위해 클라이언트 라이브러리를 추가해야 합니다. pom.xml 파일에서 다음과 같이 의존성을 추가합니다.
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>3.1.0</version>
</dependency>
주의: Spring Boot 버전과 Spring Boot Admin 버전의 호환성을 반드시 확인해야 합니다. 위의 예시는 3.1.0 버전을 기준으로 작성되었으므로, 사용하는 Spring Boot 버전에 맞는 최신 버전을 확인하고 적용해야 합니다.
3. Spring Boot Admin Server 설정
Admin 서버는 별도의 Spring Boot 프로젝트로 구성합니다. pom.xml 파일에서 다음과 같이 의존성을 추가합니다.
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>3.1.0</version>
</dependency>
보안 설정: Admin 서버는 보안 설정이 필요합니다. application.properties 또는 application.yml 파일에서 다음과 같이 사용자 정보를 설정합니다.
spring.security.user.name=admin
spring.security.user.password=password
4. 클라이언트 등록
클라이언트 애플리케이션에서 Admin 서버에 등록해야 합니다. application.properties 또는 application.yml 파일에서 다음과 같이 Admin 서버의 URL을 설정합니다.
management.endpoints.web.base-path=/actuator
management.endpoint.health.show-details=always
spring.boot.admin.url=http://localhost:8080
5. 애플리케이션 실행
클라이언트와 서버 애플리케이션을 모두 실행하면 Admin UI를 통해 클라이언트 애플리케이션의 상태를 모니터링할 수 있습니다.
추가 설정
- 커스터마이징: Admin UI를 커스터마이징하여 필요한 정보만 표시하거나 추가적인 기능을 구현할 수 있습니다.
- 인증: Admin 서버에 접근하기 위한 인증 방식을 설정할 수 있습니다.
- 알림: 문제 발생 시 이메일 또는 슬랙 등으로 알림을 받도록 설정할 수 있습니다.
Spring Boot Admin이란?
Spring Boot Admin은 여러 개의 Spring Boot 애플리케이션을 중앙에서 모니터링하고 관리할 수 있도록 도와주는 도구입니다. 각 애플리케이션의 상태, 메트릭, 로그 등을 한눈에 파악하여 시스템 전체의 건강 상태를 진단하고 문제를 빠르게 해결하는 데 도움을 줍니다.
Spring Boot Admin Server와 Client의 역할
- Spring Boot Admin Server:
- 여러 Spring Boot 애플리케이션의 상태를 수집하고 표시하는 웹 UI를 제공합니다.
- 각 애플리케이션의 health, metrics, info 등 다양한 엔드포인트를 통해 정보를 가져와 시각화합니다.
- 사용자에게 편리한 인터페이스를 제공하여 애플리케이션의 상태를 실시간으로 확인하고 관리할 수 있도록 합니다.
- Spring Boot Admin Client:
- Spring Boot Admin Server에 등록되어 자신의 상태 정보를 전송하는 개별 Spring Boot 애플리케이션입니다.
- Actuator 엔드포인트를 통해 Server에 정보를 제공하고, Server에서 제공하는 기능을 활용합니다.
왜 Spring Boot Admin을 사용해야 할까요?
- 중앙 집중형 관리: 여러 애플리케이션의 상태를 한 곳에서 모니터링하여 관리 효율성을 높입니다.
- 시각화된 정보: 직관적인 UI를 통해 애플리케이션의 상태를 한눈에 파악할 수 있습니다.
- 빠른 문제 해결: 문제 발생 시 빠르게 원인을 파악하고 해결할 수 있습니다.
- 자동화: 알림 기능, 스크립팅 기능 등을 통해 자동화된 관리가 가능합니다.
마무리
Spring Boot Actuator와 Spring Boot Admin을 연동하면 애플리케이션의 상태를 실시간으로 모니터링하고 문제를 빠르게 파악하여 해결할 수 있습니다. 이를 통해 애플리케이션의 안정성과 가용성을 높일 수 있습니다.
핵심: Spring Boot Actuator와 Spring Boot Admin을 연동하여 애플리케이션 모니터링 환경을 구축하는 방법을 상세히 설명했습니다. 메이븐 의존성 추가, 설정, 그리고 추가적인 기능 커스터마이징 방법까지 다루었습니다.
이 글이 Spring Boot 애플리케이션 모니터링을 시작하는 데 도움이 되기를 바랍니다.
'SpringBoot 를 배워보자' 카테고리의 다른 글
Swagger-UI, 개발 환경에서만 노출하고 운영 환경에서는 숨기는 방법: 상세 가이드 (0) | 2024.11.16 |
---|---|
Maven 프로파일을 활용한 조건별 의존성 관리: 유연하고 효율적인 프로젝트 관리를 위한 가이드 (0) | 2024.11.16 |
스프링 부트 액추에이터 가 모니터 툴 맞아? json만 리턴되는데.. 그래픽은? 뭘더 설치해야되? (0) | 2024.11.16 |
스프링 부트 액추에이터 설치 및 활용: 개발 환경을 넘어 운영 환경까지 완벽하게 관리하다 (0) | 2024.11.16 |
SAP JCo를 활용한 Spring Boot 연동 가이드: 상세 예제와 함께하는 완벽 가이드 (0) | 2024.11.13 |