Springcloud admin 是基于spring-boot-starter-actuator 实现的, admin 是根据统计出来的数据来进行展示的,可以很好的监控整
个微服务系统中的实例运行情况信息,前提结合注册中心才能拿到数据。
1、actuator 负责统计数据,引入jar:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>LATEST</version> </dependency> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-server-ui</artifactId> <version>LATEST</version> </dependency>
2、启动类配置:
import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
@EnableEurekaClient
@EnableAdminServer //admin相关注解
public class MicroAdminApplication {
public static void main(String[] args) {
SpringApplication.run(MicroAdminApplication.class,args);
}
}
3、核心安全配置:bootstrap.properties
# 安全配置,用户名和密码 可以自定义设置 spring.security.user.name=admin spring.security.user.password=admin eureka.instance.metadata-map.user.name=${spring.security.user.name} eureka.instance.metadata-map.user.password=${spring.security.user.password}
其他配置:
spring.application.name=nandao-admin server.port=8282 #是否注册到eureka eureka.client.registerWithEureka=true #是否从eureka中拉取注册信息 eureka.client.fetchRegistry=true eureka.client.serviceUrl.defaultZone=http://admin:admin@localhost:8763/eureka/
安全效验的相关代码:
import de.codecentric.boot.admin.server.config.AdminServerProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
@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");
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().disable();
}
}
4、启动admin、注册中心、客户端服务 访问 http://localhost:8282:
登录后显示服务类表:
点击 应用墙显示 服务模块,如果某个服务挂了,那么该模块会显示红色,大家可以测试一下
5、springcloud 管理页面 已经成功启动,可以详细点击看看相关内容,功能还是比较全的,有疑问的地方可以随时骚扰!!!