使用过Spring boot的开发者都知道actuator,它是Springboot提供的用来对应用系统进行自省和监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。但比较遗憾的是没有可视化界面,只能通过干燥的json数据来查看相应的指标,如下图:
今天我们介绍一个可视化的监控指标平台Spring Boot Admin,它利用spring-boot-starter-actuator提供的功能,将各个微服务的状态整合到一起,并提供良好的界面查看支持,并且能够动态的修改实例日志级别。
Spring Boot Admin 开源地址:https://github.com/codecentric/spring-boot-admin
Spring Boot Admin分为server和client,使用非常方便,server端可查看各个微服务的状态,client端将微服务注册到server端。
服务端
下面先搭建server端,直接使用start.spring.io生成一个spring boot项目,引入下面依赖
配置端口和服务名
server.port=8090
spring.application.name=admin-server
启动类,通过添加注解@EnableAdminServer
启动后,打开url显示如下
客户端
spring boot项目,直接添加下图依赖即可
application.properties中配置注册的服务端地址如下
spring.application.name=admin-client
spring.boot.admin.client.url=http://127.0.0.1:8090
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=ALWAYS
启动完成后,查看server端,如下图
查看相关指标
应用墙可以快速看到那些服务异常
正常情况
异常情况
点击应用,可以查看相应指标
查看properties的环境变量配置
查看日志级别
Spring Boot Admin为注册的应用程序提供以下功能:
- 显示健康状况
- 显示详细信息,例如JVM和内存指标micrometer.io指标数据源指标缓存指标
- 显示内部编号
- 关注并下载日志文件
- 查看JVM系统和环境属性
- 查看Spring Boot配置属性
- 支持Spring Cloud的可发布/ env-&/ refresh-endpoint
- 轻松的日志级别管理
- 与JMX-beans交互
- 查看线程转储
- 查看http-traces
- 查看审核事件
- 查看http端点
- 查看预定的任务
- 查看和删除活动会话(使用spring-session)
- 查看Flyway / Liquibase数据库迁移
- 下载heapdump
- 状态更改通知(通过电子邮件,Slack,Hipchat等)
- 状态更改的事件日志(非持久性)