来源于公众号未读代码,1.Spring Boot Admin 是什么
作者达西呀
Spring Boot Admin 是由 codecentric 组织开发的开源项目,使用 Spring Boot Admin 可以管理和监控你的 Spring Boot 项目 。它分为客户端和服务端两部分,客户端添加到你的 Spring Boot 应用增加暴漏相关信息的 HTTP 接口,然后注册到 Spring Boot Admin 服务端,这一步骤可以直接向服务端注册,也可以通过 Eureka 或者 Consul 进行注册 。而 Spring Boot Admin Server 通过 Vue.js 程序监控信息进行可视化呈现 。并且支持多种事件通知操作 。
2. Spring Boot Admin 服务端Spring Boot Admin 服务端是基于 Spring Boot 项目的,如何创建一个 Spring Boot 项目这里不提,你可以参考之前文章或者从 https://start.spring.io/ 直接获得一个 Spring Boot 项目 。
2.1. 添加依赖只需要添加 web 依赖和 Spring-boot-admin-starter-server 依赖 。
<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>2.2. 启动配置为了和下面的客户端端口不冲突,先修改端口号为 9090 。server:port:9090添加 @EnableAdminServer 注解启用 Spring Boot Admin Server 功能 。
文章插图
服务端已经配置完成,启动项目进行访问就可以看到 Spring Boot Admin Server 的页面了 。

文章插图
Spring Boot Admin Server UI
3. Spring Boot Admin 客户端创建 Spring Boot 项目依旧不提,这里只需要添加 Spring Boot Admin 客户端需要的依赖,在项目启动时就会增加相关的获取信息的 API 接口 。然后在 Spring Boot 配置文件中配置 Spring Boot Admin 服务端,就可以进行监控了 。
3.1 客户端依赖pom.xml

文章插图
3.2 客户端配置
客户端配置主要为了让客户端可以成功向服务端注册,所以需要配置客户端所在应用相关信息以及 Spring Boot Admin Server 服务端的 url 。

文章插图
配置中的 include: "*" 公开了所有的端口,对于生产环境,应该自信的选择要公开的接口 。
Spring Boot Admin 可以获取应用中的定时任务,所以在代码中增加一个定时任务计划,每 20 秒输出一次当前时间,日志级别为 INFO,用于下面的定时任务和日志监控测试 。

文章插图
3.3. 客户端运行
启动客户端会暴漏相关的运行状态接口,并且自动向配置的服务端发送注册信息 。
下面是客户端的启动日志:

文章插图
从启动日志里的 Exposing 15 endpoint(s) beneath base path '/actuator' 这段,可以看到暴漏了 15 个 /actuator 的 API 接口,可以直接访问查看响应结果 。

文章插图
Spring Boot Admin Client 监测接口
从日志 Application registered itself as 6bcf19a6bf8c 可以看到客户端已经注册成功了 。再看服务端可以看到注册上来的一个应用实例 。

文章插图
Spring Boot Admin Server
4. Spring Boot Admin 功能点击监控页面上的在线的应用实例,可以跳转到应用实例详细的监控管理页面,也就是 Vue.js 实现的 web 展示 。

文章插图
Spring Boot Admin Server 监控页面
Spring Boot Admin Server 可以监控的功能很多,使用起来没有难度,下面描述下可以监测的部分内容:
- 应用运行状态,如时间、垃圾回收次数,线程数量,内存使用走势 。
- 应用性能监测,通过选择 JVM 或者 Tomcat 参数,查看当前数值 。
- 应用环境监测,查看系统环境变量,应用配置参数,自动配置参数 。
- 应用 bean 管理,查看 Spring Bean,并且可以查看是否单例 。
- 应用计划任务,查看应用的计划任务列表 。
- 应用日志管理,动态更改日志级别,查看日志 。
推荐阅读
- Linux防火墙常用规则配置
- Centos7 使用ssh进行x11图形界面转发
- 精华露和精华液的区别及使用
- 奶粉空罐 罐装奶粉的罐可以反复使用吗
- 黑客使用的技能有哪些你知道吗?
- WebSocket的基本使用
- Nginx+SpringBoot实现负载均衡
- XMLHttpRequest使用入门
- 网站优化的robots.txt使用
- 每月都在交社保,大多数人不会正确使用,一篇文章看懂!
