Spring Cloud 集成 Spring Boot Admin(注册中心使用eureka)

Spring Cloud 集成 Spring Boot Admin的原理简单概述就是 Spring Boot Admin通过拉取eureka的实例信息来进行注册

1.服务端

核心依赖,由于是基于eureka的监控,所以主要有两个依赖,一是eureka client,一是admin server。

注意:引入的jar中版本注意和springboot的版本保持一致避免版本冲突

         
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
        
            de.codecentric
            spring-boot-admin-starter-server
        

之后在启动类中引入eruka的注入和springbootadmin的启动注解就可以将eruka的服务暴露给springbootadmin

@EnableAdminServer
@EnableDiscoveryClient
@SpringBootApplication
public class ServerAdminApplication {

	public static void main(String[] args) {
		SpringApplication.run(ServerAdminApplication.class, args);
	}

}

 

配置spring security

@Configuration
public class SecuritySecureConfig extends WebSecurityConfigurerAdapter {
	private final String adminContextPath;

	public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
		this.adminContextPath = adminServerProperties.getContextPath();
	}

	@Override
	protected void configure(HttpSecurity http) throws Exception {
		SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
		successHandler.setTargetUrlParameter("redirectTo");
		successHandler.setDefaultTargetUrl(adminContextPath + "/");
		http.authorizeRequests().antMatchers(adminContextPath + "/assets/**").permitAll().antMatchers(adminContextPath + "/login").permitAll().anyRequest().authenticated().and().formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and().logout().logoutUrl(adminContextPath + "/logout").and().httpBasic().and().csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()).ignoringAntMatchers(adminContextPath + "/instances", adminContextPath + "/actuator/**");
	}
}

 

服务端配置如下:

这里我是配置了两个eureka,配置一个也无所谓的

# security
spring.security.user.name=admin
spring.security.user.password=123456

# info
info.eureka.host01=${EUREKA_SERVER:127.0.0.1}
info.eureka.host02=${EUREKA_SERVER:127.0.0.1}
info.eureka.port01=8811
info.eureka.port02=8812

# profile
spring.profiles.active=dev

# eureka
eureka.client.serviceUrl.defaultZone=http://${info.eureka.host01}:${info.eureka.port01}/eureka/,http://${info.eureka.host02}:${info.eureka.port02}/eureka/
eureka.instance.metadata-map.user.name=${spring.security.user.name}
eureka.instance.metadata-map.user.password=${spring.security.user.password}
# server
server.port=8830

 

2.客户端

客户端注册到eureka服务中心,即可被监控。

配置如下:

#开放所有页面节点,默认只开放health.info
management.endpoints.web.exposure.include=*
#显示健康具体信息,默认不会显示详细信息
management.endpoint.health.show-details=always

 

你可能感兴趣的:(springboot)