springboot admin是用来监控springboot应用的组件。
springboot admin分服务端和客户端。客户端就是我们要监控的应用,即我们自己的业务应用,通过HTTP或者使用Eureka注册到服务端。服务端用来展示各客户端应用的信息,如。
使用时,先启动服务端,再启动客户端。
服务端
1、引入springboot admin server依赖
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.2.2</version>
</dependency>
2、用@EnableAdminServer标注启动类
3、在springboot配置文件中指定服务端应用的端口,例如8000
server.port=8000
客户端
1、引入springboot admin client依赖
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.2.2</version>
</dependency>
2、在springboot配置文件中指定springboot admin server的地址,以及要放开哪些监控,本身应用的名称
spring.application.name=Admin Client
spring.boot.admin.client.url=http://127.0.0.1:8000
management.endpoints.web.exposure.include=*
启动服务端,访问127.0.0.1:8000,页面如下
说明admin server启动成功,但是还没有admin client注册。
启动客户端,发现服务端页面变成如下
点击应用墙,发现此时有一个客户端注册进来。
点击这个六边形,会展示出这个客户端应用详细的信息。
服务端页面的数据是怎么来的?
springboot admin其实是利用了springboot actuator。服务端定期向各客户端应用发送actuator请求,拿到响应数据然后渲染展示。把客户端应用日志级别调成debug,就可以看到来自服务端的请求了。
通过服务端页面的日志配置,我们可以调整当前客户端应用的日志级别,可以调整整个应用的,也可以调整某个包的,甚至是某个类的。
springboot admin client可以先于admin server启动,也就说在server宕机时client不受影响仍然可以正常提供业务服务。所以admin sever单节点是可以的。
以上注册方式是HTTP注册,还可以用Eureka注册。