스프링 부 트 관리자 소개
7489 단어 마이크로 서비스
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. 알림
다음은 우리 의 등록 클 라 이언 트 에 문제 가 생기 면 관리 서버 에서 어떻게 통 지 를 받 는 지 토론 합 시다.
다음 알림 프로그램 은 설정 에 사용 할 수 있 습 니 다:
이메일
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 응용 프로그램 을 감시 하고 관리 하 는 간단 한 절 차 를 소개 합 니 다.
자동 설정 은 기본 적 인 설정 만 추가 하면 정상 적 인 작업 관리 서버 를 얻 을 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
마이크로 서비스 간에feign을 통해 서로 호출되며, 크로스 서버 호출 시 이상이 발생: No route to host해결: feign이 다른 서비스를 호출하는 것도 eureka 등록센터 서비스를 획득하여 서비스가 등록된 IP에 문제가 있는지 추측하고 지정한 appId의 실례를 조회한다. eureka url/eureka/apps/{...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.