Spring Boot Admin 介绍及使用

介绍

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

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

它最终的展示效果如下:

本次用的开发工具是IDEA2022,SpringBoot版本是2.7.1,项目结构是分布式结构,分别由父项目admin、子模块server、子模块client三个部分组成。

1.父项目

首先我们新建一个maven工程作为父项目,主要的作用是聚合子模块方便打包、版本管理。我们点击新建项目,找到第一个New Project,为项目起名为admin,点击创建,完成。

2.子模块——server

这里子模块server的作用是一个监控的项目,它的本质是一个web工程,同样我们点击新建项目,选择SpringBoot项目,起名为server,点击下一步。

勾选上web模块和ops下的server部分,如下图,最后点击创建,完成。

我这里推荐勾选选择,如果你的项目已经创建好了,也可以通过引入依赖的方式来整合,依赖如下,

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>2.7.1</version>
</dependency>

到此为止我们的监控项目就建好了,接下来需要注解开启监控,在server的启动类上加上@EnableAdminServer注解,这样就大功告成了!

最后启动spring项目在浏览器输入http://localhost:8080/applications就进入监控页面了

此时我们可以看到被监控的应用数为0,这是因为我们还没有新建被监控的子模块,接下来我们新建一个子模块。

3.子模块——client

上述步骤完成之后我们需要建立一个子模块被监控,本质也是一个web项目。同server一样我们新建一个SpringBoot项目,点击下一步。

这里需要勾选的也是web模块,不同的是这次ops变成了client,如下图,点击创建,完成。

这里我同样推荐方式,如果你的项目已经建立,则可以引入依赖,依赖如下

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.7.1</version>
</dependency>

这样我们就建好了一个被监控的web项目,因为他是一个web项目,所以我们需要将他的端口号改成与server不同的以免冲突,这里我改成了8081,

配置文件中还需要加上一个配置spring.boot.admin.client.url,这个配置的意思是被监控的信息要发到哪个服务器,所以这里我们写上server的url如下图。

这些完成之后我们就可以启动client了,点击启动按钮,等待几秒钟,我们刷新刚才打开的页面,可以发现被监控的实例数变成了1,这样就被监控了!

点击这个实例,我们跳到详情页,可以看到它是处于启动状态。

这是默认指标,我们需要更多的配置来开放更多的指标出来。

开放监控指标

打开client的配置文件,在其中加上下面两个配置,如图所示。然后重启项目。

#开放指定信息给服务器看
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include= *

刷新页面,你会发现新增了很多新指标!

事件日志中包含 Spring Boot 各种状态的展示(UP 为正常、OFFLINE 为异常)和发生的时间,如下图所示:

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

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

简单介绍一下两个配置的作用:

第一个配置 management.endpoint.health.show-details=always 对应右侧的健康明细,包括磁盘使用情况,线程进程情况。

第二个配置 management.endpoints.web.exposure.include= * 指的是左侧除了健康状况以外的其他监控项,例如日志配置,缓存,类等。这里的 " * " 号代表开放所有

简单介绍几个常用的监控项:

1)性能

性能可以看出各个模块的启动时间,也可以添加别的指标。

2)环境

这里的环境包括运行系统,运行环境,jre版本等信息。

3)日志配置

日志配置可以更改对应的实例中的日志级别。

4)映射

映射可以看到项目中所有的接口信息

5)计划任务

计划任务可以查看项目中的定时任务

6)JVM

可以查看JVM 线程和内存使用情况

7)查看项目实时日志

想要查看监控项目中的日志信息,有一个前提条件,前提条件是你被监控的 Spring Boot 项目,必须配置了日志的保存路径或者日志保存文件名,只有配置这两项中的任意一项,你的 Spring Boot 项目才会将日志保存到磁盘上,这样才能通过 SBA 查看到,我配置的是日志路径,在 Spring Boot 的 application.properties 配置文件中添加以下配置:

# 设置日志保存路径
logging.file.path=D:\\work\\log

设置完成之后,重启你的 Spring Boot 项目,然后刷新 SBA 页面,最终展示效果如下:

此时我们就可以查看实时的日志信息了,当然你也可以随时下载日志,如果需要的话。

总结

Spring Boot Admin(SBA)是一个社区开源项目,用于管理和监视 Spring Boot 应用程序,它提供详细的健康 (Health)信息、内存信息、JVM 系统和环境属性、垃圾回收信息、日志设置和查看、定时任务查看、Spring Boot 缓存查看和管理等功能。

我们需要创建一个 SBA 服务器端用来监控一个或多个 Spring Boot 项目,被监控的 Spring Boot 项目要添加 SBA Client 框架的支持,且添加 actuator 框架和相应的配置,就可以实现对 Spring Boot 项目的完美监控了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值