• springboot-admin整合及使用


    0. 官方文档及示例

    官方文档

    示例代码:Spring-Boot-Admin-Demo

    1. 概述

    • Spring Boot Admin(SBA)是一个开源的社区项目,用于管理和监控 Spring Boot 应用程序。应用程序可以通过 http 的方式,或 Spring Cloud 服务发现机制注册到 SBA 中,然后就可以实现对 Spring Boot 项目的可视化管理和查看了。

    • Spring Boot Admin 可以监控 Spring Boot 单机或集群项目,它提供详细的健康 (Health)信息内存信息JVM 系统和环境属性垃圾回收信息日志设置和查看定时任务查看Spring Boot 缓存查看和管理等功能。

    • Spring Boot Admin 是一个监控工具,旨在以良好且易于访问的方式可视化 Spring Boot Actuators 提供的信息。它由两个主要部分组成:

      • 提供用户界面来显示 Spring Boot Actuators 并与之交互的服务器。
      • 用于在服务器上注册并允许访问执行器端点的客户端。

    1.1 版本对应关系

    Spring Boot - Spring Boot Admin 版本对应关系

    Spring Boot VersionSpring Boot Admin
    2.62.6.Y
    2.72.7.Y
    3.03.0.Y

    注意:springboot3.x需要jdk17及以上

    2. 搭建服务端

    1. 参照版本对应关系创建一个springboot项目,作为服务端

      image-20231007115936744

    2. 添加SBA Server端依赖

      image-20231007133356959

    3. 开启SBA服务

      package site.zhourui.sbaserver;
      
      import de.codecentric.boot.admin.server.config.EnableAdminServer;
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      
      @EnableAdminServer // 添加此行代码
      @SpringBootApplication
      public class SbaserverApplication {
      
          public static void main(String[] args) {
              SpringApplication.run(SbaserverApplication.class, args);
          }
      
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
    4. 配置SBA端口号

      • 我习惯使用yaml配置文件,springboot默认生成的是properties文件
      • 如果是application.properties 需要将如下配置修改为properties格式,我配置的端口号是 9001
      • 配置端口号的主要目的是为了不和其他 Spring Boot 项目冲突,如果 SBA 是单独部署此步骤可以忽略。
      server:
        port: 9001
      
      • 1
      • 2
    5. 启动SBA Server

      启动项目之后,就可以看到 SBA 的主页了,如下图所示:

      image-20231007154553345

    3. 搭建客户端

    1. 参照版本对应关系创建一个springboot项目,作为客户端

      image-20231007154800642

    2. 勾选SBA Server端依赖 ,web依赖视情况而定

      image-20231007154920526

    3. 配置SBA端口号,服务名及服务端监控地址

      server:
        port: 8081   ## 当前项目端口号 
      spring:
        boot:
          admin:
            client:
              url: http://localhost:9001    # Spring Boot Admin 监控服务器端地址 
        application:
          name: sbaclient01        #服务名称        
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
    4. 启动sbaclient01服务

    5. 到服务端查看sbaclient01服务是否注册成功

      image-20231007162222295

      image-20231007162230280

    4. SpringBootAdmin监控总览

    1. 点击应用进入详情页面,如下图所示:

      image-20231007162902053

    2. 查看全部事件

      image-20231007163207719

    5. 配置查看更多监控项

    通过上面的内容我们可以看出,监控的 Spring Boot 选项还是比较少的,怎么才能查看更多的监控项呢?要解决这个问题,我们需要在被监控的 Spring Boot 项目中添加 spring-boot-starter-actuator 框架的支持,并开启查看所有监控项的配置才行,最终展示效果如下:

    1. 添加actuator框架支持

      被监控的 Spring Boot 项目中添加 actuator 框架支持,也就是在 pom.xml 中添加以下配置:

      <dependency> 
          <groupId>org.springframework.bootgroupId> 
          <artifactId>spring-boot-starter-actuatorartifactId> 
      dependency> 
      
      • 1
      • 2
      • 3
      • 4
    2. 配置开放所有监控项

      本来是*号的,但是yaml需要使用''才不会报如下错误

      image-20231007164409684

      management:
        endpoints:
          web:
            exposure:
              include: '*'    #开启监控所有项
      
      • 1
      • 2
      • 3
      • 4
      • 5

      生产环境按照需求开启监控项不要全部开启

    3. 重启服务

      image-20231007164916311

    6. 监控项目预览

    将 Spring Boot 的所有监控项都开启之后,通过 SBA 就可以查看以下内容了:

    • 启动时间、累计运行时间;
    • 进程和线程数量和占用的 CPU 资源;
    • 垃圾回收详情信息,回收次数和花费时间;
    • JVM 线程转储、内存转储详情和对应的文件下载;
    • 可以查看和配置 Spring Boot 项目中的日志级别;
    • 查看 Spring Boot 项目性能监控;
    • 查看 Spring Boot 运行环境信息;
    • 查看 Spring Boot 所有类信息;
    • 查看 Spring Boot 中的定时任务;
    • 查看和管理 Spring Boot 项目中的所有缓存。

    6.1 查看运行环境

    这里的数据被spring actuator 进行了脱敏操作了全变成了星号了

    image-20231007171211578

    6.2 查看定时任务

    这里我没有写定时任务,所以就没有

    image-20231007171359572

    6.3 项目日志级别配置

    image-20231007171528059

    6.4 JVM线程和内存查看

    image-20231007171549877

    image-20231007171558438

    6.5 接口

    image-20231007171710388

    6.6 缓存

    image-20231007171732595

    6.7 事实日志

    • 3.x版本可能因为安全问题移除了事实日志了,并且运行环境spring actuator也进行脱敏操作了
    • 所以最好推荐使用2.x版本 推荐2.5.3,相同的步骤只不过springboot版本与SpringBootAdmin版本换成2.x版本即可
    • 但需要注意生产环境安全问题
  • 相关阅读:
    华为又“捅破天”发布新品Mate60 Pro直连天通一号卫星通话,北斗卫星通信飞入寻常百姓家
    UDS协议从入门到精通系列:附录表应用
    Framework 为何被称为 Android 开发者必修?
    (BGV12)方案初学
    32GB Jetson Orin SOM 不能刷机问题排查
    基于Python的微博舆论分析,微博情感分析可视化系统(V2.0)
    方差、协方差的几何理解
    adobe pdf 合并文件后提示“无法提取嵌入的字体”问题解决方法
    契约锁乔迁新址,欢迎新老朋友来坐坐
    Java synchronized锁 String 和 Integer 会有什么问题?
  • 原文地址:https://blog.csdn.net/qq_31745863/article/details/133649329