SpringBoot2干货系列 | 第一篇:Spring Boot Admin 2 监控

标签: springboot  

Spring Boot Admin 在 Spring Boot Actuator 的基础上提供简洁的可视化 WEB UI,是用来管理 Spring Boot 应用程序的一个简单的界面,提供的功能参考:Spring Boot Admin Github

在本文中,我们将介绍配置 Spring Boot Admin(以下简称 SBA)服务端的步骤以及如何将一个 Spring Boot 应用注册为它的客户端。

环境依赖

  • JDK >= 1.8

  • Gradle 4.10.2

  • Spring Boot Admin 2.1.0

快速上手

首先我们需要创建一个 SBA 的服务端。

服务端

1、创建一个简单的 Spring Boot 应用程序并添加以下依赖

dependencies {
    implementation 'de.codecentric:spring-boot-admin-starter-server:2.1.0'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-security'

    testCompile group: 'junit', name: 'junit', version: '4.12'
}

2、然后我们就可以将 @EnableAdminServer 添加到我们的主类中

@SpringBootApplication
@EnableAdminServer
public class AdminServerApplication {

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

3、安全配置:

@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 {
        // @formatter:off
        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/**"
                );
        // @formatter:on
    }
}

4、配置服务端口等信息

spring:
  application:
    name: admin-server

  security:
    user:
      name: 'admin'
      password: 'admin123'

server:
  port: 18080

此时,SBA Server 已经好了,直接启动它。

客户端

在建立了我们的服务端之后,我们可以将一个 Spring Boot 应用程序注册为客户端。 注册客户端有两种方式,一种就是通过引入 SBA Client,另外一种是基于 Spring Cloud Discovery。

我们这里介绍通过引入 SBA Client 的方式。

1、首先要引入以下依赖:

dependencies {
    implementation 'de.codecentric:spring-boot-admin-starter-client:2.1.0'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-security'

    testCompile group: 'junit', name: 'junit', version: '4.12'
}

2、然后在配置文件 application.yml 中配置以下信息

spring:
  application:
    name: admin-client

  boot:
    admin:
      client:
        url: http://localhost:18080
        username: 'admin'
        password: 'admin123'

server:
  port: 8081

management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: ALWAYS

现在客户端也就配置好了,启动客户端再次访问 http://localhost:18080 就能看到以下界面:

login:

Instance details:

参考

Spring Boot Admin 2.0 上手
Spring Boot Admin Github
http://codecentric.github.io/spring-boot-admin/2.1.0/#getting-started

「真诚赞赏,手留余香」

请我喝杯咖啡?

使用微信扫描二维码完成支付

相关文章