springboot-admin整合及使用

news2024/12/25 12:18:30

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);
        }
    
    }
    
  4. 配置SBA端口号

    • 我习惯使用yaml配置文件,springboot默认生成的是properties文件
    • 如果是application.properties 需要将如下配置修改为properties格式,我配置的端口号是 9001
    • 配置端口号的主要目的是为了不和其他 Spring Boot 项目冲突,如果 SBA 是单独部署此步骤可以忽略。
    server:
      port: 9001
    
  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        #服务名称        
    
  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.boot</groupId> 
        <artifactId>spring-boot-starter-actuator</artifactId> 
    </dependency> 
    
  2. 配置开放所有监控项

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

    image-20231007164409684

    management:
      endpoints:
        web:
          exposure:
            include: '*'    #开启监控所有项
    

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

  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版本即可
  • 但需要注意生产环境安全问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1068740.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

读书笔记——C++高性能编程(一至三)

《C高性能编程》作者&#xff1a;费多尔.G.皮克斯 版本&#xff1a;2022年11月第1版 第一章.性能基础 描述了吞吐量&#xff0c;功耗&#xff0c;实时应用性能的含义。 阐述了“虽然几乎不可能提前预测最佳优化&#xff0c;但是可以确定某些设计决策将使后续优化变得非常困难…

SSCI及SCI撰写|立足于审稿进行论文修改

一、回复审稿意见视角下的论文改进 &#xff08;一&#xff09;常见审稿意见分类&#xff08;改进向&#xff09; 意见分类研究主题方面真实案例研究主题研完没有提供新的信息This is clearly a students paper Although it is adequately written it offers no new informat…

Python Parser 因子计算性能简单测试

一直以来&#xff0c;Python 都在量化金融领域扮演着至关重要的角色。得益于 Python 强大的库和工具&#xff0c;用户在处理金融数据、进行数学建模和机器学习时变得更加便捷。但作为一种解释性语言&#xff0c;相对较慢的执行速度也限制了 Python 在一些需要即时响应的场景中的…

【nvm】Node Version Manager(NVM)安装配置以及使用(WIN版)

NVM 包管理工具 安装 访问NVM-Windows的GitHub页面&#xff1a;点击nvm-setup.exe。 根据提示进行下一步&#xff0c;文件位置选择自定义位置 验证安装是否成功 nvm version 。如果成功&#xff0c;它将显示NVM的版本号。 使用 nvm list available查看所有的可以被下载…

【LeetCode: 2034. 股票价格波动 | 有序表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

基于SSM的学院学生论坛系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

ViT论文逐段精读【论文精读】

如果说过去一年中在计算机视觉领域哪个工作的影响力最大&#xff0c;那应该非 vision consumer 莫属了&#xff0c;因为它挑战了自从 2012 年 Alexnet 提出以来卷积神经网络在计算机视觉领域里绝对统治的地位。它的结论就是说&#xff0c;如果在足够多的数据上去做预训练&#…

在Unity使用自定义网格生成一个球体

1.在Unity场景中新建一个空物体&#xff0c;在空物体上添加MeshRenderer和MeshFilter组件。 2.新建一个C#脚本命名SphereMesh,将脚本挂载到空物体上&#xff0c;如图&#xff1a; 运行场景就可以看到生成一个球体 全部代码如下&#xff1a; using UnityEngine;public class S…

非支配排序遗传算法NSGA + 带精英策略的非支配排序遗传算法NSGA-Ⅱ 解析

xi 优于 xj > 则称 xi 非支配于 xj 一、NSGA 1、识别非支配个体&#xff08;使用非支配排序算法&#xff09; -> 从而将种群分为多层 通过非支配排序算法对这个规模为 n 的种群进行分层的具体步骤如下&#xff1a; &#xff08; 1 &#xff09;设 i 1 &#xff1b;…

Java使用模板导出word、pdf

使用deepoove根据模板导出word文档&#xff0c;包括文本、表格、图表、图片&#xff0c;使用WordConvertPdf可将word文档转换为pdf导出 模板样例&#xff1a; 导出结果&#xff1a; 一、引入相关依赖 <!-- 工具类--><dependency><groupId>cn.hutool&…

DiffusionDet:第一个用于物体检测的扩散模型(DiffusionDet: Diffusion Model for Object Detection)

提出了一种新的框架——DiffusionDet&#xff0c;它将目标检测定义为一个从有噪声的盒子到目标盒子的去噪扩散过程。在训练阶段&#xff0c;目标盒从真实值盒扩散到随机分布&#xff0c;模型学会了逆转这个噪声过程。 在推理中&#xff0c;该模型以渐进的方式将一组随机生成的框…

【Java每日一题】— —第二十四题:编程定义一个长方形类Rectangle(2023.10.08)

&#x1f578;️Hollow&#xff0c;各位小伙伴&#xff0c;今天我们要做的是第二十四题。 &#x1f3af;问题&#xff1a; &#xff08;1&#xff09;定义成员变量&#xff1a;长&#xff08;int height&#xff09;&#xff0c;宽&#xff08;int width&#xff09;&#xf…

springboot整合pi支付开发

pi支付流程图&#xff1a; 使用Pi SDK功能发起支付由 Pi SDK 自动调用的回调函数&#xff08;让您的应用服务器知道它需要发出批准 API 请求&#xff09;从您的应用程序服务器到 Pi 服务器的 API 请求以批准付款&#xff08;让 Pi 服务器知道您知道此付款&#xff09;Pi浏览器向…

如何系列 如何使用ff4j实现功能迭代

文章目录 功能开关是什么为什么需要功能开关&#xff1f;功能流程组件业务接入端常用Api 功能开关管理端 高级面向切面 AOP审计和监控缓存微服务中使用 概念功能 Feature功能存储 FeatureStore属性 Property属性存储 PropertyStoreFF4J架构FF4J使用开关策略 FlippingStrategy功…

【赠书活动】如何让AI在企业多快好省的落地

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

优化理论笔记

目录 一、前言 二、优化问题的基本要素 三、优化问题分类 四、最优值类型 五、最优化方法分类 六、非约束优化 1、问题定义 2、优化算法 1&#xff09;一般局部搜索过程 2&#xff09;集束搜索 3&#xff09;禁忌搜索 4&#xff09;模拟退火 5&#xff09;蛙跳算法…

使用Resnet进行图像分类训练

本文仅给出最基础的baseline进行图像分类训练&#xff0c;后续可在此代码基础上对模型结构进行修改。 一、图像分类数据集 现有一份图像类别数据集&#xff0c;类别为Y和N&#xff0c;数据目录如下&#xff1a; /datasets/data/ |-- train/ | |-- Y/ | |-- N/划分训练集…

超自动化加速落地,助力运营效率和用户体验显著提升|爱分析报告

RPA、iPaaS、AI、低代码、BPM、流程挖掘等在帮助企业实现自动化的同时&#xff0c;也在构建一座座“自动化烟囱”。自动化工具尚未融为一体&#xff0c;协同价值没有得到释放。Gartner于2019年提出超自动化&#xff08;Hyperautomation&#xff09;概念&#xff0c;主要从技术组…

法律战爆发:“币安退出俄罗斯引发冲击波“

币安是全球最大的加密货币交易所之一&#xff0c;经历了几个月的艰难时期&#xff0c;面临着各种法律挑战&#xff0c;最近将其俄罗斯分公司的所有资产出售给了一家几天前才成立的公司。 这家主要交易所的麻烦始于 6 月份&#xff0c;当时美国证券交易委员会 (SEC)起…

PyTorch Lightning - LightningModule 训练逻辑 (training_step) 异常处理 try-except

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/133673820 在使用 LightningModule 框架训练模型时&#xff0c;因数据导致的训练错误&#xff0c;严重影响训练稳定性&#xff0c;因此需要使用 t…