SpringBoot Admin

前言

Spring Boot Admin 是一个管理和监控 Spring Boot 应用程序的开源项目,它提供了一个简洁的 Web 界面来监控 Spring Boot 应用程序的状态和各种运行时指标。Spring Boot Admin 可以帮助开发者快速了解应用程序的状态,并快速定位错误或性能问题。下面是 Spring Boot Admin 的一些主要特点:

1. 界面友好:Spring Boot Admin 提供了一个漂亮、干净、响应式的 Web 界面,支持数据实时更新和各种交互式组件。

2. 实时监控:Spring Boot Admin 可以实时监控应用程序的运行状态、性能指标、日志等信息,并提供历史记录和图表展示。

3. 健康检查:Spring Boot Admin 可以检查应用程序的健康状况,并提供警报和通知功能。

4. 远程管理:Spring Boot Admin 可以通过远程 HTTP 调用管理和监控远程应用程序,可以方便地管理多个服务器上的应用程序。

5. 自适应:Spring Boot Admin 支持自适应布局管理,可以根据屏幕分辨率和显示器大小动态调整页面布局。

6. 支持扩展:Spring Boot Admin 提供了灵活的 API 和事件机制,开发者可以自定义添加监控指标、扩展界面、添加连接器等。

总之,Spring Boot Admin是一个功能强大、易用性强的Spring Boot应用程序管理和监控工具,非常适合用于管理和监控Spring Boot应用程序的生命周期,特别是在分布式系统和微服务架构中使用。

Spring Boot Admin 的组成

  1. Spring Boot Actuator:Spring Boot Actuator 是 Spring Boot 提供的一个功能强大的监控和管理扩展,用于监控应用程序的各种指标、健康状况和环境属性。Admin Client 依赖于 Spring Boot Actuator 来收集和提供应用程序的监控数据。
  2. Spring Boot Admin Server:Spring Boot Admin Server 是 Spring Boot Admin 的核心组件,负责提供 Web 界面和 API,以监控注册的 Spring Boot 应用程序。它是一个 Spring Boot 应用程序,通过依赖于 Spring Boot Starter Admin 自动配置。
  3. Spring Boot Admin Client:Spring Boot Admin Client 是需要在要监控的 Spring Boot 应用程序中集成的客户端库。它负责将应用程序的信息注册到 Spring Boot Admin Server,并暴露一些端点供 Admin Server 使用。
  4. Web UI(用户界面):Spring Boot Admin 提供了一个用户友好的 Web 界面,通过该界面可以查看注册的应用程序的状态、详细信息、日志和环境属性等。 界面通常包括仪表板、应用程序列表、详细信息页等。
  5. 事件通知:Spring Boot Admin 支持事件通知机制,可以通过事件监听器获取应用程序的状态变化、健康状态变化等事件。这使得可以通过邮件、Slack 等方式实现对应用程序状态的实时告警。

搭建Spring Boot Admin

   1、Admin Server

        主要依赖:

        
            org.springframework.boot
            spring-boot-starter-web
        
        
            de.codecentric
            spring-boot-admin-starter-server
        

        启动类添加注解: 

SpringBoot Admin_第1张图片

      2、Admin Client

               主要依赖:

        
            org.springframework.boot
            spring-boot-starter-web
        
        
            de.codecentric
            spring-boot-admin-starter-client
            2.7.1
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        

        配置文件yml:

server:
  port: 8082

spring:
  boot:
    admin:
      client:
        url: http://localhost:8081 #指向注册server地址
management:
  endpoint:
    health:
      show-details: always #健康端点总是显示详细信息
  endpoints:
    web:
      base-path: /high #地址映射 actuator映射成 high
      path-mapping:
        health: heal #自定义health接口
      exposure:
        include: health,info,metrics #开放监控端口,“*”慎用

        开放端点注意:        

        在生产环境上,为了安全考虑,通常只有一部分端点被对外开放,可以按需开放以下几个常用的端点:

         /actuator/health: 健康检查端点,用于检查应用程序的健康状态。这个端点通常是必须的,可以对外开放。

         /actuator/info: 信息端点,用于暴露关于应用程序的自定义信息。可以对外开放,但需要确保不会泄漏敏感信息。

         /actuator/metrics: 指标端点,提供应用程序的各种指标数据(如内存使用、CPU使用等)。可以对外开放,但可以进行访问控制,只允许授权用户或服务访问。

         /actuator/env: 环境变量端点,展示应用程序的环境变量信息。通常情况下,这个端点不应该对外开放,以防止泄漏敏感信息。

         禁用安全防护机制:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().anyRequest().permitAll()
                .and().csrf().disable();
    }
        3、启动顺序:先启动Server再启动Client

SpringBoot Admin_第2张图片

你可能感兴趣的:(spring,boot,后端,java)