共计 3702 个字符,预计需要花费 10 分钟才能阅读完成。
Spring Boot Admin(SBA)是一个开源的社区我的项目,用于治理和监控 Spring Boot 应用程序。应用程序能够通过 http 的形式,或 Spring Cloud 服务发现机制注册到 SBA 中,而后就能够实现对 Spring Boot 我的项目的可视化治理和查看了。
Spring Boot Admin 能够监控 Spring Boot 单机或集群我的项目,它提供具体的衰弱(Health)信息、内存信息、JVM 零碎和环境属性、垃圾回收信息、日志设置和查看、定时工作查看、Spring Boot 缓存查看和治理等性能。接下来咱们一起来搭建和应用吧。
它最终的展现成果如下:
1. 搭建 SBA 监控端
咱们须要创立一个 Spring Boot Admin 我的项目,用来监控和治理咱们的 Spring Boot 我的项目,搭建的形式和创立一般的 Spring Boot 我的项目相似,具体步骤如下。
应用 Idea 创立一个 Spring Boot 我的项目:
这里须要留神,须要增加 Spring Boot Admin(Server)服务端框架的反对,如下图所示:
也就是创立的 Spring Boot 我的项目须要增加以下两个重要的框架反对:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
1.1 开启 SBA 服务
创立完我的项目之后,须要在启动类上开启 SBA 服务:
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 配置 SBA 端口号
在 application.properties 中配置一个我的项目的端口号就能够间接启动了,我配置的端口号是 9001:
server.port=9001
PS:配置端口号的次要目标是为了不和其余 Spring Boot 我的项目抵触,如果 SBA 是独自部署此步骤能够疏忽。
启动我的项目之后,就能够看到 SBA 的主页了,如下图所示:
此时 SBA 中还没有增加任何须要监控的我的项目,接下来咱们再创立一个 Spring Boot 我的项目,退出到 SBA 中来进行监控和治理吧。
2. 创立一个一般 SpringBoot 我的项目
首先,咱们须要创立一个一般的 Spring Boot 我的项目,具体的创立步骤这里就不演示了。当创立好 Spring Boot 我的项目之后,须要在这个 Spring Boot 我的项目中须要增加 SBA 客户端框架的反对,也就是在 pom.xml 中配置如下内容:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
而后在 application.properties 文件中配置 SBA 服务器端地址,也就是咱们第一步创立 SBA 我的项目的地址,配置内容如下:
# 以后我的项目端口号
server.port=8080
# Spring Boot Admin 监控服务器端地址
spring.boot.admin.client.url=http://localhost:9001
其中“spring.boot.admin.client.url”为 SBA 监控地址。
3.SpringBootAdmin 监控总览
配置完以上信息之后,此时查看 Spring Boot Admin 页面中就有被监控的 Spring Boot 我的项目了,如下图所示:
也能够点击“利用墙”查看 Spring Boot Admin 中所有被监控的 Spring Boot 我的项目,如下图所示:
点击利用进入详情页面,如下图所示:
事件日志中蕴含 Spring Boot 各种状态的展现(UP 为失常、OFFLINE 为异样)和产生的工夫,如下图所示:
4.SpringBoot 异样监控
当咱们手动把被监控的 Spring Boot 我的项目进行之后,在 Spring Boot Admin 中就能够查看到一个利用曾经被停掉了,如下图所示:
咱们也能够通过事件日志查看 Spring Boot 宕机的具体工夫,如下图所示:
5. 配置查看更多监控项
通过下面的内容咱们能够看出,监控的 Spring Boot 选项还是比拟少的,怎么能力查看更多的监控项呢?
要解决这个问题,咱们须要在被监控的 Spring Boot 我的项目中增加 spring-boot-starter-actuator 框架的反对,并开启查看所有监控项的配置才行,最终展现成果如下:
接下来咱们来配置一下这些监控项。
5.1 增加 actuator 框架反对
在被监控的 Spring Boot 我的项目中增加 actuator 框架反对,也就是在 pom.xml 中增加以下配置:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
手动点击 Maven 导入依赖包(如果开启了主动导入,此步骤可疏忽)。
5.2 配置凋谢所有监控项
在被监控的 Spring Boot 我的项目中增加以下配置:
# 开启监控所有项
management.endpoints.web.exposure.include=*
以上的配置是凋谢监控所有选项,配置完之后,重启此 Spring Boot 我的项目,而后再刷新 Spring Boot Admin 更多的监控项就展现进去了,如下图所示:
5.3 监控我的项目预览
将 Spring Boot 的所有监控项都开启之后,通过 SBA 就能够查看以下内容了:
- 启动工夫、累计运行工夫;
- 过程和线程数量和占用的 CPU 资源;
- 垃圾回收详情信息,回收次数和破费工夫;
- JVM 线程转储、内存转储详情和对应的文件下载;
- 能够查看和配置 Spring Boot 我的项目中的日志级别;
- 查看 Spring Boot 我的项目性能监控;
- 查看 Spring Boot 运行环境信息;
- 查看 Spring Boot 所有类信息;
- 查看 Spring Boot 中的定时工作;
- 查看和治理 Spring Boot 我的项目中的所有缓存。
以下是几个重要页面的截图,咱们一起来看。
5.3.1 查看运行环境
5.3.2 查看定时工作
5.3.3 我的项目日志级别配置
咱们能够通过 Spring Boot Admin 来动静的配置我的项目中的日志级别。
5.3.4 JVM 线程和内存查看
5.3.5 查看 SpringBoot 所有缓存
当然咱们还能够对这些缓存进行删除操作。
6. 查看我的项目实时日志
想要查看监控我的项目中的日志信息,有一个前提条件,前提条件是你被监控的 Spring Boot 我的项目,必须配置了日志的保留门路或者日志保留文件名,只有配置这两项中的任意一项,你的 Spring Boot 我的项目才会将日志保留到磁盘上,这样能力通过 SBA 查看到,我配置的是日志门路,在 Spring Boot 的 application.properties 配置文件中增加以下配置:
# 设置日志保留门路
logging.file.path=C:\\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 我的项目的完满监控了。
是非审之于己,毁誉听之于人,得失安之于数。
公众号:Java 面试真题解析