01.03 SpringBoot 2.x 開發案例之整合Srping Boot Admin

前言

Spring Boot Admin 就是將 Spring Boot Actuator中提供的endpoint信息可視化表示,並且可以通過郵件、Telegram、Hipchat等發送告警消息。

集成

注意一定要版本對應,否則會出現意想不到的問題,建議使用Srping Boot Admin 2.0+以上版本,可以多語言切換。

父項目

pom.xml引入:

<code><modules>
<module>admin-server/<module>
<module>admin-client/<module>
/<modules>

<parent>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-starter-parent/<artifactid>
<version>2.2.2.RELEASE/<version>
<relativepath>
/<parent>
<dependencies>
<dependency>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-starter-web/<artifactid>
<exclusions>
<exclusion>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-starter-tomcat/<artifactid>
/<exclusion>
/<exclusions>
/<dependency>
<dependency>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-starter-jetty/<artifactid>
/<dependency>
/<dependencies>
/<code>

監控服務端

pom.xml引入:

<code><artifactid>admin-server/<artifactid>
<dependencies>
<dependency>

<groupid>de.codecentric/<groupid>
<artifactid>spring-boot-admin-starter-server/<artifactid>
<version>2.2.1/<version>
/<dependency>

<dependency>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-starter-security/<artifactid>
/<dependency>

<dependency>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-starter-mail/<artifactid>
/<dependency>
/<dependencies>
/<code>

application.properties配置文件:

<code># 爪哇筆記:https://blog.52itstyle.vip
server.port=9000
spring.application.name=SpringBootAdmin
spring.security.user.name=admin
spring.security.user.password=admin
spring.boot.admin.monitor.status-interval = 10000
spring.boot.admin.monitor.info-interval = 10000

spring.mail.host = smtp.163.com
spring.mail.username = [email protected]
spring.mail.password = 2020
spring.boot.admin.notify.mail.from = [email protected]
spring.boot.admin.notify.mail.to = [email protected]
/<code>

啟動類:

<code>/**
* 系統監控
* 爪哇筆記:https://blog.52itstyle.vip
*/
@Configuration
@EnableAutoConfiguration
@EnableAdminServer
public class Application {

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

@Configuration
public static class SecuritySecureConfig extends WebSecurityConfigurerAdapter {

private final AdminServerProperties adminServer;

public SecuritySecureConfig(AdminServerProperties adminServer) {
this.adminServer = adminServer;
}

@Override
protected void configure(HttpSecurity http) throws Exception {
SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
successHandler.setTargetUrlParameter("redirectTo");
successHandler.setDefaultTargetUrl(this.adminServer.path("/"));

http.authorizeRequests()
.antMatchers(this.adminServer.path("/assets/**")).permitAll()
.antMatchers(this.adminServer.path("/login")).permitAll()
.anyRequest().authenticated()
.and()
.formLogin().loginPage(this.adminServer.path("/login")).successHandler(successHandler).and()
.logout().logoutUrl(this.adminServer.path("/logout")).and()
.httpBasic().and()
.csrf()
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.ignoringRequestMatchers(
new AntPathRequestMatcher(this.adminServer.path("/instances"), HttpMethod.POST.toString()),
new AntPathRequestMatcher(this.adminServer.path("/instances/*"), HttpMethod.DELETE.toString()),
new AntPathRequestMatcher(this.adminServer.path("/actuator/**"))
)
.and()
.rememberMe().key(UUID.randomUUID().toString()).tokenValiditySeconds(1209600);
}
}
}

/<code>

監控客戶端

pom.xml引入:

<code><artifactid>admin-client/<artifactid>
<dependencies>
<dependency>
<groupid>de.codecentric/<groupid>

<artifactid>spring-boot-admin-starter-client/<artifactid>
<version>2.2.1/<version>
/<dependency>
/<dependencies>
/<code>

application.properties配置文件:

<code># 爪哇筆記:https://blog.52itstyle.vip
spring.boot.admin.client.instance.name = 007
spring.boot.admin.client.url= http://localhost:9000
management.endpoints.web.exposure.include=*
spring.boot.admin.client.username = admin
spring.boot.admin.client.password = admin
spring.boot.admin.client.period = 10000
spring.boot.admin.client.connect-timeout = 5000
spring.boot.admin.client.read-timeout = 5000
spring.boot.admin.client.instance.service-url = http://localhost:8080
/<code>

監控界面


SpringBoot 2.x 開發案例之整合Srping Boot Admin


SpringBoot 2.x 開發案例之整合Srping Boot Admin


SpringBoot 2.x 開發案例之整合Srping Boot Admin


SpringBoot 2.x 開發案例之整合Srping Boot Admin


SpringBoot 2.x 開發案例之整合Srping Boot Admin


小結

不得不說,2.X 版本還是很美觀大氣上檔次的,並且監控告警功能齊全,


分享到:


相關文章: