스프링 부 트 관리자 소개

1. 개술
Spring Boot Admin 은 Spring Boot 프로그램의 운행 상 태 를 관리 하고 감시 하 는 웹 애플 리 케 이 션 입 니 다.모든 Spring Boot 응용 프로그램 은 클 라 이언 트 로 간주 되 고 관리 서버 에 등 록 됩 니 다.뒤의 데이터 수집 은 Spring Boot Actuator 터미널 에서 제공 합 니 다.
본 논문 에서 저 희 는 Spring Boot Admin 서버 를 설정 하 는 절차 와 응용 프로그램 이 어떻게 클 라 이언 트 가 되 는 지 설명 할 것 입 니 다.
2. 관리 서버 설정
우선, 다음 Maven 의존 항목 을 추가 하기 위해 간단 한 Spring Boot 웹 프로그램 을 만들어 야 합 니 다.

    de.codecentric
    spring-boot-admin-server
    1.5.4


    de.codecentric
    spring-boot-admin-server-ui
    1.5.4


이 를 추가 하면 @ EnableAdmin Server 에서 사용 할 수 있 습 니 다.우 리 는 그것 을 주 클래스 에 추가 합 니 다. 다음 과 같 습 니 다.
@EnableAdminServer
@SpringBootApplication
public class SpringBootAdminServerApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(SpringBootAdminServerApplication.class, args);
    }
}

이 때 서버 는 클 라 이언 트 프로그램 을 시작 하고 등록 할 준비 가 되 어 있 습 니 다.
3. 클 라 이언 트 설정
관리 서버 를 설정 한 후에 우 리 는 Spring Boot 응용 프로그램 을 클 라 이언 트 로 등록 할 수 있 습 니 다.다음 Maven 의존 항목 을 추가 해 야 합 니 다.

    de.codecentric
    spring-boot-admin-starter-client
    1.5.4


나머지 유일한 것 은 관리 서버 의 URL 에 접근 하기 위해 클 라 이언 트 를 설정 하 는 것 이다.이 를 위해, 우 리 는 아래 속성 만 추가 하면 됩 니 다:
spring.boot.admin.url=http://localhost:8080
management.security.enabled=false

4. 보안 설정
Spring Boot Admin 서버 는 프로그램의 민감 한 점 에 접근 할 수 있 으 므 로 관리자 와 클 라 이언 트 응용 프로그램 에 보안 설정 을 추가 하 는 것 을 권장 합 니 다.
우선 서버 보안 설정 에 전념 하 겠 습 니 다.다음 Maven 의존 항목 을 추가 해 야 합 니 다.

    de.codecentric
    spring-boot-admin-server-ui-login
    1.5.4


    org.springframework.boot
    spring-boot-starter-security


보안 을 사용 하기 위해 프로그램 에 로그 인 인 인 터 페 이 스 를 추가 합 니 다.
그 후에 저 희 는 안전 설정 류 를 추가 할 것 입 니 다. 다음 과 같 습 니 다.
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
 
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
          .formLogin()
          .loginPage("/login.html")
          .loginProcessingUrl("/login")
          .permitAll();
        http
          .logout().logoutUrl("/logout");
        http
          .csrf().disable();
        http
          .authorizeRequests()
          .antMatchers("/login.html", "/**/*.css", "/img/**", "/third-party/**")
          .permitAll();
        http
          .authorizeRequests()
          .antMatchers("/**")
          .authenticated();
        http.httpBasic();
    }
}

이것 은 간단 한 보안 설정 이지 만 추가 하면 클 라 이언 트 가 서버 에 다시 등록 할 수 없다 는 것 을 알 게 될 것 입 니 다.
클 라 이언 트 를 새로운 보안 서버 에 등록 하기 위해 서 클 라 이언 트 의 속성 파일 에 더 많은 설정 을 추가 해 야 합 니 다.
spring.boot.admin.username=admin
spring.boot.admin.password=admin

현재 관리 서버 는 안전 한 환경 에 있 지만 클 라 이언 트 는 그렇지 않 습 니 다.생산 시스템 에서 우리 가 감시 하려 는 응용 프로그램 도 당연히 보 호 받 아야 한다.
따라서 저 희 는 클 라 이언 트 에 안전성 을 추가 할 것 입 니 다. - 저 희 는 서버 를 관리 하 는 UI 인터페이스 에서 클 라 이언 트 정 보 를 더 이상 사용 할 수 없다 는 것 을 알 게 될 것 입 니 다.
서버 에 보 낼 메타 데 이 터 를 추가 해 야 합 니 다.서버 에서 이 정 보 를 사용 하여 클 라 이언 트 의 터미널 에 연결 합 니 다:
management.security.enabled=true
security.user.name=client
security.user.password=client
spring.boot.admin.client.metadata.user.name=${security.user.name}
spring.boot.admin.client.metadata.user.password=${security.user.password}

물론 HTTP 를 통 해 증 거 를 보 내 는 것 은 안전 하지 않 기 때문에 통신 은 HTTPS 를 통 해 이 루어 져 야 합 니 다.
5. 모니터링 및 관리 기능
Spring Boot Admin 을 유용 하 다 고 생각 하 는 정보 만 표시 하도록 설정 할 수 있 습 니 다.기본 설정 을 변경 하고 필요 한 지 표를 추가 하기 만 하면 됩 니 다.
spring.boot.admin.routes.endpoints=env, metrics, trace, jolokia, info, configprops

우리 의 진일보 한 조작 에 따라 우 리 는 또 다른 기능 을 탐색 할 수 있 음 을 볼 수 있 을 것 이다.Jolokia 와 Loglevel 을 사용 하여 JMX bean 관 리 를 할 수 있 습 니 다.
Spring Boot Admin 은 Hazelcast 를 사용 하여 클 러 스 터 복 제 를 지원 합 니 다.저 희 는 Maven 의존 항목 을 추가 하여 나머지 작업 을 자동 으로 설정 할 수 있 도록 합 니 다.

    com.hazelcast
    hazelcast


지속 적 인 Hazelcast 인 스 턴 스 를 원한 다 면 사용자 정의 설정 을 사용 할 것 입 니 다.
@Configuration
public class HazelcastConfig {
 
    @Bean
    public Config hazelcast() {
        return new Config()
          .setProperty("hazelcast.jmx", "true")
          .addMapConfig(new MapConfig("spring-boot-admin-application-store")
            .setBackupCount(1)
            .setEvictionPolicy(EvictionPolicy.NONE))
          .addListConfig(new ListConfig("spring-boot-admin-event-store")
            .setBackupCount(1)
            .setMaxSize(1000));
    }
}

6. 알림
다음은 우리 의 등록 클 라 이언 트 에 문제 가 생기 면 관리 서버 에서 어떻게 통 지 를 받 는 지 토론 합 시다.
다음 알림 프로그램 은 설정 에 사용 할 수 있 습 니 다:
이메일
  • PagerDuty
  • OpsGenie
  • Hipchat
  • Slack
  • Let’s Chat

  • 6.1 메 일 알림
    서버 관리 에 메 일 알림 을 설정 하 는 데 전념 하 겠 습 니 다.이 를 위해 서 는 메 일 시작 프로그램 의존 항목 을 추가 해 야 합 니 다. 다음 과 같 습 니 다.
    
        org.springframework.boot
        spring-boot-starter-mail
        1.5.4
    
    

    그 후에 우 리 는 메 일 설정 을 추가 해 야 합 니 다.
    spring.mail.host=smtp.example.com
    spring.mail.username=smtp_user
    spring.mail.password=smtp_password
    [email protected]
    

    현재, 우리 의 등록 고객 이 UP 에서 OFFLINE 또는 다른 상황 으로 상 태 를 변경 할 때마다 위 에 설 정 된 주소 로 이메일 을 보 냅 니 다.다른 알림 프로그램 에 대해 유사 한 설정 을 설정 합 니 다.
    6.2 인 스 턴 트 메 신 저 Hipchat 알림
    보시 다시 피 Hipchat 와 의 통합 은 매우 간단 합 니 다.필요 한 속성 을 몇 개 만 설정 하면 됩 니 다:
    spring.boot.admin.notify.hipchat.auth-token=
    spring.boot.admin.notify.hipchat.room-id=
    spring.boot.admin.notify.hipchat.url=https://yourcompany.hipchat.com/v2/
    

    이러한 정의 가 있 으 면 우 리 는 Hipchat 에서 고객 의 상태 가 변화 하면 우 리 는 통 지 를 받 을 수 있다 는 것 을 알 게 될 것 이다.
    6.3。사용자 정의 알림 설정
    사용자 정의 알림 시스템 을 설정 하여 강력 한 도 구 를 제공 할 수 있 습 니 다.클 라 이언 트 상태 가 변 할 때 까지 알림 알림 프로그램 을 사용 하여 예약 알림 을 보 낼 수 있 습 니 다.
    또는 필 터 된 클 라 이언 트 집합 에 알림 을 보 내 고 싶 을 수도 있 습 니 다.이 를 위해 필터 알림 프로그램 을 사용 할 수 있 습 니 다.
    Configuration
    @EnableScheduling
    public class NotifierConfiguration {
     
        @Autowired private Notifier notifier;
     
        @Bean
        public FilteringNotifier filteringNotifier() {
            return new FilteringNotifier(notifier);
        }
     
        @Bean
        @Primary
        public RemindingNotifier remindingNotifier() {
            RemindingNotifier remindingNotifier 
              = new RemindingNotifier(filteringNotifier());
            remindingNotifier.setReminderPeriod(TimeUnit.MINUTES.toMillis(5));
            return remindingNotifier;
        }
     
        @Scheduled(fixedRate = 60_000L)
        public void remind() {
            remindingNotifier().sendReminders();
        }
    }
    

    7. 결론
    이 입문 강 좌 는 Spring Boot Admin 을 사용 하여 다른 Spring Boot 응용 프로그램 을 감시 하고 관리 하 는 간단 한 절 차 를 소개 합 니 다.
    자동 설정 은 기본 적 인 설정 만 추가 하면 정상 적 인 작업 관리 서버 를 얻 을 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기