Spring Boot Admin的介绍及使用

川长思鸟来 2024-03-30 09:53 224阅读 0赞

Spring Boot 有一个非常好用的监控和管理的源软件,这个软件就是 Spring Boot Admin。该软件能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。

主要的功能点有:

  • 显示应用程序的监控状态
  • 应用程序上下线监控
  • 查看 JVM,线程信息
  • 可视化的查看日志以及下载日志文件
  • 动态切换日志级别
  • Http 请求信息跟踪
  • 其他功能点……

创建Spring Boot Admin项目

创建一个 Spring Boot 项目,用于展示各个服务中的监控信息,加上 Spring Boot Admin 的依赖,具体代码如下所示。

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>de.codecentric</groupId>
  7. <artifactId>spring-boot-admin-starter-server</artifactId>
  8. <version>2.0.2</version>
  9. </dependency>

创建一个启动类,具体代码如下所示。

  1. @EnableAdminServer
  2. @SpringBootApplication
  3. public class App {
  4. public static void main(String[] args) {
  5. SpringApplication.run(App.class, args);
  6. }
  7. }

在属性文件中增加端口配置信息:

  1. server.port=9091

启动程序,访问 Web 地址 http://localhost:9091 就可以看到主页面了,这个时候是没有数据的,如图 1 所示。

fb996b1d32674e0db93cca836417e14b.png
图 1 Spring Boot Admin主页

将服务注册到 Spring Boot Admin

创建一个 Spring Boot 项目,名称为 spring-boot-admin-client。添加 Spring Boot Admin Client 的 Maven 依赖,代码如下所示。

  1. <dependency>
  2. <groupId>de.codecentric</groupId>
  3. <artifactId>spring-boot-admin-starter-client</artifactId>
  4. <version>2.0.2</version>
  5. </dependency>

然后在属性文件中添加下面的配置:

  1. server.port=9092
  2. spring.boot.admin.client.url=http://localhost:9091

spring.boot.admin.client.url:Spring Boot Admin 服务端地址。

将服务注册到 Admin 之后我们就可以在 Admin 的 Web 页面中看到我们注册的服务信息了,如图 2 所示。

7a2d833f5367b54753495fd8af8bb046.png

图 2 Spring Boot Admin主页(有数据)

点击实例信息跳转到详细页面,可以查看更多的信息,如图 3 所示。

fcd2e31b06014ffbad799af4b62aa7eb.png
图 3 Spring Boot Admin详情

可以看到详情页面并没有展示丰富的监控数据,这是因为没有将 spring-boot-admin-client 的端点数据暴露出来。

在 spring-boot-admin-client 中加入 actuator 的 Maven 依赖,代码如下所示。

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-actuator</artifactId>
  4. </dependency>

然后在属性文件中追加下面的配置:

  1. management.endpoints.web.exposure.include=*

management.endpoints.web.exposure.include:暴露所有的 actuator 端点信息重启 spring-boot-admin-client,我们就可以在详情页面看到更多的数据,如图 4 所示。

0f87a6c6f9504e1598d63572b1874744.png
图 4 Spring Boot Admin详情(有数据)

监控内容介绍

自定义的 Info 信息、健康状态、元数据,如图 5 所示。

4937c1a633424b77bcaf3e556fdd4943.png
图 5 Spring Boot Admin数据展示(一)

CPU、线程等信息如图 6 所示。

2a99ce64dbbe40d6ac9cdfe54d778807.png
图 6 Spring Boot Admin数据展示(二)

内存使用情况如图 7 所示。

75e5feda2e154feabbb6c98f130cff03.png
图 7 Spring Boot Admin数据展示(三)

配置信息如图 8 所示。

c5eac33ae85f4d419863c30b10c00e77.png
图 8 Spring Boot Admin数据展示(四)

日志级别调整如图 9 所示。

b545ace8c1b0146f66c2c5b6b4d8ef67.png

图 9 Spring Boot Admin数据展示(五)

Http请求信息如图 10 所示。

9d37f9ce57df66d7d9c6f32d0ae0023a.png

图 10 Spring Boot Admin数据展示(六)

如何在Admin中查看各个服务的日志

Spring Boot Admin 提供了基于 Web 页面的方式实时查看服务输出的本地日志,前提是服务中配置了 logging.file。

我们在 spring-boot-admin-client 的属性文件中增加下面的内容:

  1. logging.file=/Users/zhangsan/Downloads/spring-boot-admin-client.log

重启服务,就可以在 Admin Server 的 Web 页面中看到新加了一个 Logfile 菜单,如图 11 所示。

dab9e80e34514260b7aee4074737ec25.png
图 11 Spring Boot Admin 日志

发表评论

表情:
评论列表 (有 0 条评论,224人围观)

还没有评论,来说两句吧...

相关阅读

    相关 spring boot介绍使用详解

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需