Spring boot admin
스프링 어플리케이션에 대한 모니터링 서비스 spring의 actuator 정보를 보고 모니터링을 표시하여 준다.
구성
- Spring Boot Monitoring Server
- Spring Boot Application
이렇게 두가지로 구성하며 BootApplication은 Client 역할을 담당(Multiple). Monitoring은 Server를 담당한다.
1. Spring Boot Monitoring Server 구성
1.1 spring-boot-admin-starter-server 추가
pom.xml 에 디펜던시 추가 라이브러리 를 추가한다.
<properties>
<java.version>1.11</java.version>
<spring-boot-admin.version>2.2.3</spring-boot-admin.version>
<spring-cloud.version>Hoxton.SR5</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-dependencies</artifactId>
<version>${spring-boot-admin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
1.2 application.yml 설정
server:
port: 9000
다른포트와 충돌이 날수 있음으로 port만 변경한다.
1.3 BootApplication
@EnableAdminServer 을 활성화 시켜 준다. 이로서 admin server는 간단편하게 설정 완료되었다.
package com.skan.farm;
import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* <pre>
* Description :
*
*
* </pre>
*
* @author skan
* @version Copyright (C) 2020 by CJENM|Mezzomedia. All right reserved.
* @since 2020-06-04
*/
@SpringBootApplication
@EnableAdminServer
public class MonitoringApplication {
public static void main(String[] args) {
SpringApplication.run(MonitoringApplication.class,args);
}
}
2. Spring Boot Application (Client) 구성
모니터링 대상인 Application에서 앞서 설치한 모니터링 서버의 정보를 입력해준다.
2.1 spring-boot-admin-starter-client 추가 디펜던시 라이브러리를 pom.xml 에 추가 시켜 준다.
1.2 client application.yml 설정
admin 모니터링 서버에서 접근 가능 하도록 endpoint를 모두 허용하여 열어준다. 스프링 시큐리티 설정을 한경우엔 시큐리티 설정과 클라이언트에 비밀번호를 넣어줘 접근이 가능 하도록 한다.
<그림 - 1 인스턴스 목록 >
<그림-2 데시보드 화면>
데시보드 화면을 통해 실시간 로그, JVM 정보를 확인 할 수 있다.
3. Spring Boot Admin Security
클라이언트 어플리케이션에서 spring security를 사용 중이라면 각 클라이언트에서 boot admin 으로 접속시 인스턴스 명을 적어주게 되는데 이때 메타데이터 안에 user.name 과 user.id를 셋팅 함으로 admin-server 에서 admin-client로 접근 할 수 있게 된다.
액추에이터의 엔트포인터도 admin boot 에서 접속 가능하도록 모두 허용으로 한다.
spring:
profiles:
active: local
boot:
admin:
client:
url: http://localhost:9000
#username: admin monitoring server 의 id
#password: admin monitoring server 의 password
instance:
name: it-farm-client #(어플리케이션 명)
metadata: # 나의 어플리케이션 (스프링 시큐리티 )로그인 정보
user.name: admin
user.password: 1
security:
user:
name: admin
password: 1
# 어드민에서 모니터링 가능 하도록 엔드포인트도 모두 열어 줄것
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: always
'Spring > Spring Boot' 카테고리의 다른 글
Spring Cloud Config (0) | 2020.06.22 |
---|---|
Spring devtools restart 파일 감지 (0) | 2018.08.31 |
Springboot jpa & Hibernate Naming Strategy(네이밍 전략) (2) | 2018.08.31 |
Spring boot Swagger (0) | 2017.08.31 |
Spring Boot mobile project 에 tiles 적용 (0) | 2017.02.03 |