Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

2020-05-28 00:00:00 客户端 配置 查看 监控 服务端



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-SNAPSHOTC/S 架构风格 。 应用程序作为 Spring Boot Admin ClientSpring Boot Admin Server 注册(通过HTTP)或使用 Spring Cloud注册中心(如 EurekaConsul)发现。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>

相关文章