Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用
1. 前言
生产上对 Web
应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以通过一个轻量级的监控工具 Spring Boot Admin (SBA) 来进行监控。
2. Spring Boot Admin
Spring Boot Admin是由德国软件工程师 Johannes Edmeier 开源的用于管理和监控 Spring Boot 应用程序。已经被收纳入Spring Initializr 截至发文时间的新正式版本为 2.1.6 ,快照为2.2.0-SNAPSHOT。 C/S 架构风格 。 应用程序作为 Spring Boot Admin Client 向 Spring Boot Admin Server 注册(通过HTTP
)或使用 Spring Cloud注册中心(如 Eureka,Consul)发现。SERVER程序采用了 响应式Web框架 Spring Webflux 。 展示UI采用了 Vue.js,展示Spring Boot Admin Client 通过 Spring Boot Actuator 端点上的一些监控。常见的功能或者监控如下:
- 显示健康状况
- 显示应用度量指标详情,例如
- JVM和内存指标
- micrometer度量
- 数据源指标
- 缓存指标
- 显示构建信息编号
- 关注并下载日志文件
- 下载
heapdump
- 查看
jvm
系统和环境属性
- 查看 Spring Boot 配置属性
- 支持 Spring Cloud 的环境端点和刷新端点
- 支持 K8s
- 易用的日志级别管理
- 与
JMX-beans
交互
- 查看线程转储
- 查看
http
跟踪
- 查看
auditevents
- 查看
http-endpoints
- 查看计划任务
- 查看和删除活动会话(使用 Spring Session )
- 查看
Flyway
/Liquibase
数据库迁移
- 状态变更通知(通过电子邮件,Slack,Hipchat等,支持钉钉)
- 状态更改的事件日志(非持久化)
3. 快速集成
接下来让我们来在 Spring Boot 项目中集成 Spring Boot Admin 。注意版本的兼容性,可通过Spring Initializr 来验证。
3.1 配置 Spring Boot Admin Server
Spring Boot Admin Server 一般推荐独立作为一个 Spring Boot jar
应用运行。 只需要将下列依赖添加到你的 pom.xml
中:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 生产需要保证监控的安全性-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
相关文章