美文网首页
springboot常用starter⑱-admin

springboot常用starter⑱-admin

作者: 一个好汉 | 来源:发表于2021-07-23 15:50 被阅读0次

    Admin

    什么是Spring Boot Admin

    codecentric 的 Spring Boot Admin 是一个社区项目,用于管理和监控您的Spring Boot ®应用程序。应用程序向我们的 Spring Boot Admin Client 注册(通过 HTTP)或使用 Spring Cloud ®(例如 Eureka、Consul)发现。UI 只是一个位于 Spring Boot Actuator 端点之上的 Vue.js 应用程序

    上面说的actuator是接口 以json形式返回 这里的admin则是图形化给你展示出来 同样也是监控

    Spring Boot Admin是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。
    它可以:在列表中浏览所有被监控spring-boot项目的基本信息,
    详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,
    还可以直接修改logger的level

    入门

    1. 设置 Spring Boot 管理服务器

    首先,您需要设置您的服务器。为此,只需设置一个简单的启动项目(使用start.spring.io)。由于 Spring Boot Admin Server 能够作为 servlet 或 webflux 应用程序运行,因此您需要对此做出决定并添加相应的 Spring Boot Starter。在这个例子中,我们使用 servlet web starter。

    将 Spring Boot Admin Server starter 添加到您的依赖项中:

    pom.xml

    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-server</artifactId>
        <version>2.4.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    

    如果您想使用 Spring Boot Admin Server 的快照版本,您很可能需要包含 spring 和 sonatype 快照存储库:

    pom.xml

    <repositories>
        <repository>
            <id>spring-milestone</id>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <url>http://repo.spring.io/milestone</url>
        </repository>
        <repository>
            <id>spring-snapshot</id>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <url>http://repo.spring.io/snapshot</url>
        </repository>
        <repository>
            <id>sonatype-nexus-snapshots</id>
            <name>Sonatype Nexus Snapshots</name>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
    </repositories>
    

    通过添加@EnableAdminServer到您的配置中来拉入 Spring Boot Admin Server配置:

    @Configuration
    @EnableAutoConfiguration
    @EnableAdminServer
    public class SpringBootAdminApplication {
        public static void main(String[] args) {
            SpringApplication.run(SpringBootAdminApplication.class, args);
        }
    }
    

    如果您想通过 servlet 容器中的 war-deployment 设置 Spring Boot 管理服务器,请查看spring-boot-admin-sample-war。
    另请参阅spring-boot-admin-sample-servlet项目,它也增加了安全性。

    2.注册客户端应用程序

    要在 SBA 服务器上注册您的应用程序,您可以包含 SBA 客户端或使用Spring Cloud Discovery(例如 Eureka、Consul 等)。还有一个在 SBA 服务器端使用静态配置的简单选项。

    2.1. Spring Boot 管理客户端

    每个想要注册的应用程序都必须包含 Spring Boot Admin Client。为了保护端点,还要添加spring-boot-starter-security.

    将 spring-boot-admin-starter-client 添加到您的依赖项中:

    pom.xml

    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-client</artifactId>
        <version>2.4.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    

    通过配置 Spring Boot 管理服务器的 URL 启用 SBA 客户端:

    应用程序属性
    spring.boot.admin.client.url=http://localhost:8080
    management.endpoints.web.exposure.include=*
    要注册的 Spring Boot 管理服务器的 URL。
    与 Spring Boot 2 一样,默认情况下大多数端点都没有通过 http 公开,我们公开了所有端点。对于生产,您应该仔细选择要公开的端点。
    使执行器端点可访问:

    @Configuration
    public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests().anyRequest().permitAll()  
                .and().csrf().disable();
        }
    }
    

    为简洁起见,我们暂时禁用安全性。查看有关如何处理安全端点的安全部分。

    2.2. spring cloud 注册

    如果您已经将 Spring Cloud Discovery 用于您的应用程序,则不需要 SBA 客户端。只需在 Spring Boot Admin Server 中添加一个 DiscoveryClient,其余的由我们的 AutoConfiguration 完成。

    以下步骤使用 Eureka,但也支持其他 Spring Cloud Discovery 实现。有使用Consul和Zookeeper 的示例。

    另外,请查看Spring Cloud 文档。

    将 spring-cloud-starter-eureka 添加到您的依赖项中:

    pom.xml

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    

    通过添加@EnableDiscoveryClient到您的配置启用发现:

    @Configuration
    @EnableAutoConfiguration
    @EnableDiscoveryClient
    @EnableAdminServer
    public class SpringBootAdminApplication {
        public static void main(String[] args) {
            SpringApplication.run(SpringBootAdminApplication.class, args);
        }
    
        @Configuration
        public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {
            @Override
            protected void configure(HttpSecurity http) throws Exception {
                http.authorizeRequests().anyRequest().permitAll()  
                    .and().csrf().disable();
            }
        }
    }
    

    为简洁起见,我们暂时禁用安全性。查看有关如何处理安全端点的安全部分。
    告诉 Eureka 客户端在哪里可以找到服务注册中心:

    应用程序.yml

    eureka:   
      instance:
        leaseRenewalIntervalInSeconds: 10
        health-check-url-path: /actuator/health
        metadata-map:
          startup: ${random.int}    #needed to trigger info and endpoint update after restart
      client:
        registryFetchIntervalSeconds: 5
        serviceUrl:
          defaultZone: ${EUREKA_SERVICE_URL:http://localhost:8761}/eureka/
    
    management:
      endpoints:
        web:
          exposure:
            include: "*"  
      endpoint:
        health:
          show-details: ALWAYS
    

    Eureka 客户端的配置部分
    与 Spring Boot 2 一样,默认情况下大多数端点都没有通过 http 公开,我们公开了所有端点。对于生产,您应该仔细选择要公开的端点。
    另请参阅spring-boot-admin-sample-eureka。

    您可以将 Spring Boot 管理服务器包含到您的 Eureka 服务器中。如上所述设置所有内容并设置spring.boot.admin.context-path为不同的内容,"/"以便 Spring Boot Admin Server UI 不会与 Eureka 的 UI 发生冲突。

    Spring Boot Admin

    相关文章

      网友评论

          本文标题:springboot常用starter⑱-admin

          本文链接:https://www.haomeiwen.com/subject/whmmultx.html