什么是 SpringBoot Admin?
Spring Boot Admin 是一个管理和监控你的 Spring Boot 应用程序的应用程序。 这些应用程序通过 Spring Boot Admin Client(通过 HTTP)注册或者使用 Spring Cloud(例如 Eureka)发现。 UI只是 Spring Boot Actuator 端点上的一个 AngularJs 应用程序。
快速开始
首先在 IDEA 创建一个 SpringBoot 项目,把它当作 server 端,工程如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nAuUNLqv-1649407834899)(http://ohfk1r827.bkt.clouddn.com/blog/180117/hIKaIkCE8a.png-1)]
然后在 pom.xml 中引入依赖:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server-ui</artifactId>
<version>1.5.6</version>
</dependency>
继续在启动类 SpringbootAdminApplication.java 中引入注解**@EnableAdminServer**,然后运行项目:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7nLplfYY-1649407834900)(http://ohfk1r827.bkt.clouddn.com/blog/180117/C55mBbf8LH.png-1)]
此时会发现没有任何应用程序的信息。
接下来我们新建一个 SpringBoot 项目,把它当作客户端程序,工程如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RlvKLMgF-1649407834901)(http://ohfk1r827.bkt.clouddn.com/blog/180117/9EGaFH3Gb7.png-1)]
在 pom.xml 中添加依赖:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>1.5.6</version>
</dependency>
然后在 application.yml 中设置:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aSZTgMII-1649407834902)(http://ohfk1r827.bkt.clouddn.com/blog/180117/3AL0J6I16b.png-1)]
spring.boot.admin.url=http:localhost:8094 用于将当前应用注册到 Spring Boot Admin。
还可以设置,spring.boot.admin.client.name: (应用程序的名字)不设置的话会有默认的名字
此时把两个项目运行起来:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NmhTJuSL-1649407834902)(http://ohfk1r827.bkt.clouddn.com/blog/180117/IGEBDm4eJ7.png-1)]
点击图中的detail按钮:可以看到应用程序的健康值、内存、JVM、GC 等信息。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kr4istil-1649407834903)(http://ohfk1r827.bkt.clouddn.com/blog/180117/GJBjGF512G.png-1)]
metrics信息:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nW2WMbIQ-1649407834904)(http://ohfk1r827.bkt.clouddn.com/blog/180117/gdbj21Fk19.png-1)]
环境信息:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Um5ruXk-1649407834904)(http://ohfk1r827.bkt.clouddn.com/blog/180117/eglbcgE9C5.png-1)]
log信息:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gUy9Qizt-1649407834905)(http://ohfk1r827.bkt.clouddn.com/blog/180117/IkeJkaEGcI.png-1)]
JMX信息:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4ELqDXbj-1649407834906)(http://ohfk1r827.bkt.clouddn.com/blog/180117/e3Ei3l6ieF.png-1)]
线程信息:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9CK3TbsT-1649407834907)(http://ohfk1r827.bkt.clouddn.com/blog/180117/ClFekkJKB8.png-1)]
Trace追踪信息:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ke0FEZ4k-1649407834907)(http://ohfk1r827.bkt.clouddn.com/blog/180117/J6m9b43F8d.png-1)]
还可以下载 Heapdump 文件。
刚才首页的应用列表后面有个红色的 ×,我们可以将注册上去的应用移除,但是只要你不把程序停掉,它立马又会注册上去。
还有就是应用列表的 version 和 info 上面的图中为空,下面看看怎么把它变出来:
info.groupId: @project.groupId@
info.artifactId: @project.artifactId@
info.version: @project.version@
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sFCGsHoQ-1649407834908)(http://ohfk1r827.bkt.clouddn.com/blog/180117/3E5hlG7heJ.png-1)]
重新运行客户端程序,刷新页面可以发现:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CZA1R88f-1649407834909)(http://ohfk1r827.bkt.clouddn.com/blog/180117/A0FBLLK9LE.png-1)]
还可以查询应用程序的事件变化:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-37IAea81-1649407834910)(http://ohfk1r827.bkt.clouddn.com/blog/180117/E9LfBJGaB3.png-1)]
客户端应用程序
JMX bean管理
要在管理界面中与JMX-beans进行交互,您必须在客户端应用程序中包含 Jolokia,
pom.xml 加入依赖:
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-core</artifactId>
</dependency>
重启客户端程序后,就可以在这里与 JMX 做交互了:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CrVScKow-1649407834911)(http://ohfk1r827.bkt.clouddn.com/blog/180117/g82cD16kBf.png-1)]
还有很多 SpringBoot Admin 客户端配置选项:
http://codecentric.github.io/spring-boot-admin/1.5.6/#spring-boot-admin-client
服务端程序
也有些 SpringBoot Admin 服务端程序配置选项:
http://codecentric.github.io/spring-boot-admin/1.5.6/#spring-boot-admin-server
官方文档里面还有些关于服务下线消息通知的知识,想了解的可以查看:
http://codecentric.github.io/spring-boot-admin/1.5.6/#_notifications
)