spring-boot-admin

1. 개요

Spring Boot Admin 은 Spring Boot 어플리케이션의 admin interface를 제공하는 UI 프레임워크이다. 각 서비스의 Spring Actuator Endpoints의 정보를 읽어와 Dashboard를 제공한다.

제공하는 기능

  • Health Status

  • Application 상세 정보

    • JVM & memory metrics

    • Datasource metrics

    • Cache metrics 등

  • 빌드 정보

  • Spring Boot Actuator 제공 정보

  • Hystrix stream 정보 등

2. 구성방법

SBA 1.5.x 구성

a. Server-side 구성 (1.5.x)

  1. Spring boot project 생성

  2. pom.xml dependency 추가

  3. application.yml - eureka 설정 추가

  4. @EnableAdminServer Annotation 추가

b. Client-side 구성 with Eureka Client (1.5.x)

각 마이크로서비스가 Eureka Client로 구성되어 있는 경우, Actuator 정보만 추가하여 Admin Server에 자동 등록하고 사용할 수 있다.

Eureka 는 필수가 아니며, Spring Boot Admin Client 를 통해 구성 가능하다.

  1. Spring boot project 생성

  2. pom.xml dependency 추가

  3. application.yml - eureka 설정 추가

SBA 2.0.x 구성

a. Server-side 구성 (2.0.x)

  1. Spring boot project 생성

  2. pom.xml dependency 추가

  3. application.yml - eureka 설정 추가

  4. @EnableAdminServer Annotation 추가

b. Client-side 구성 with Eureka Client (2.0.x)

각 마이크로서비스가 Eureka Client로 구성되어 있는 경우, Actuator 정보만 추가하여 Admin Server에 자동 등록하고 사용할 수 있다.

Eureka 는 필수가 아니며, Spring Boot Admin Client 를 통해 구성 가능하다.

  1. Spring boot project 생성

  2. pom.xml dependency 추가

  3. application.yml - eureka, actuator 설정 추가

    • Spring boot 2.x 버전의 경우 default actuator endpoint는 health, info뿐이므로 명시적으로 열어줘야 함("*")

  4. Eureka Discovery Annotation 추가, actuator access security 설정 추가

3. Login Page 설정

1.5.x Server 설정 추가

  1. pom.xml dependency 추가

  2. application.yml 인증정보 추가

  3. SecurityConfig 설정 코드 추가

2.0.x Server 설정 추가

  1. pom.xml dependency 추가

  2. application.yml 인증정보 추가

    • eureka.instance.metadataMap.user.name/password

      Registration 단계에서 SBA에 아래와 같은 형식으로 전달되어, SBA에서 해당 서비스의 actuator endpoint에 접근할 때 사용한다. (각 Client Service에서 Security가 필요한 경우 1,2단계를 동일하게 적용)

  3. SecurityConfig 설정 코드 추가

4. Hystrix, Turbine UI 모듈

1.5.x 버전의 경우 hystrix-ui, turbine-ui 모듈을 추가할 수 있다. (2.x 버전은 지원하지 않음)

참고

버전이슈

SpringBoot Admin Sever의 버전과 마이크로 서비스의 SpringBoot(Actuator) 버전에 따라 이슈가 있음 1. SpringBoot Admin Sever : 2.0.0

  1. SpringBoot Admin Sever : 2.0.1-SNAPSHOT

  2. SpringBoot Admin Server : 1.5.7

SpringBoot Admin Server와 각 마이크로 서비스의 버전을 맞춰서 사용하는 것을 권장. SpringBoot Admin 2.x를 사용하는 경우 turbine은 별도의 서비스로 제공 해야 함

reference guide

1.5.x

http://codecentric.github.io/spring-boot-admin/1.5.7/

https://github.com/altfatterz/spring-boot-admin-eureka-edgware

2.x

https://codecentric.github.io/spring-boot-admin/current/

https://github.com/altfatterz/spring-boot-admin-eureka-finchley

Last updated