SpringBoot Admin应用监控搭建

官网地址:https://codecentric.github.io/spring-boot-admin/2.0.2/

Spring Boot Admin 用于监控基于 Spring Boot 的应用,它是在 Spring Boot Actuator 的基础上提供简洁的可视化 WEB UI。对于我们来说最关键的就是我们能够直观的通过控制台来看到我们微服务的一个健康状况,同时能够快速的监测微服务的运行情况。最大的作用不仅仅能够帮组我们查看服务健康状况,同时也能够对接口的压力和健壮性进行评估。

SpringBoot Admin 提供如下功能

  • 显示健康状况

  • 显示详细信息,例如

    • JVM和内存指标
    • micrometer.io指标
    • 数据源指标
    • 缓存指标
    • 显示构建信息编号
    • 关注并下载日志文件
    • 查看jvm system-和environment-properties
    • 查看Spring Boot配置属性
    • 支持Spring Cloud的postable / env-和/ refresh-endpoint
    • 轻松的日志级管理
    • 与JMX-beans交互
    • 查看线程转储
    • 查看http-traces
    • 查看auditevents
    • 查看http-endpoints
    • 查看计划任务
    • 查看和删除活动会话(使用spring-session)
    • 查看Flyway / Liquibase数据库迁移
    • 下载heapdump
    • 状态变更通知(通过电子邮件,Slack,Hipchat,…)
    • 状态更改的事件日志(非持久性)

Admin的使用有两个端

  • server
  • client

构建一个Admin服务的步骤

  • 先构建一个server,也就是我们的监控Admin服务
  • 然后在创建一个连接server的一个client,我们开发业务的项目

创建一个Server

  • 添加依赖
<dependency>
	<groupId>de.codecentric</groupId>
	<artifactId>spring-boot-admin-starter-server</artifactId>
	<version>2.2.2</version>
</dependency>

注意:SpringBoot 2.2.6需要配合spring-boot-admin-starter-server依赖的2.2.0以上的版本,不然会报错。

  • 配置文件
server:
  port: 10080

spring:
  boot:
    admin:
      context-path: monitor
  application:
    name: admin-server
  • 配置详解
参数 默认值 说明
spring.boot.admin.context-path / server端的访问路径
spring.boot.admin.monitor.period 10000 更新client端状态的时间间隔,单位是毫秒
spring.boot.admin.monitor.status-lifetime 100000 client端状态的生命周期,该生命周期内不会更新client状态。单位是毫秒
spring.boot.admin.monitor.connect-timeout 2000 查询client状态信息时的连接超时时间,单位是毫秒(如果2秒内没有获取到client的状态信息,则认为连接已经断开)
spring.boot.admin.metadata-keys-to-sanitize 默认值是".password$",".*secret$", ".*key$", ".$token$", ".credentials.", ".*vcap_services$" 要被过滤掉的元数据(当与正则表达式相匹配时,这些数据会在输出的json数据中过滤掉)
spring.boot.admin.probed-endpoints 默认是"health", "env", "metrics", "httptrace:trace", "threaddump:dump", "jolokia", "info", "logfile", "refresh", "flyway", "liquibase", "heapdump", "loggers", "auditevents" 要获取的client的端点信息
spring.boot.admin.instance-proxy.ignored-headers 默认值是"Cookie", “Set-Cookie”, “Authorization” 向client发起请求时不会被转发的headers信息
spring.boot.admin.ui.brand 在导航栏中显示的brand值
spring.boot.admin.ui.title 默认是"Spring Boot Admin" 显示的页面标题

SpringBoot Admin配置详解中文地址:https://cloud.tencent.com/developer/article/1525735

  • 启动类添加注解@EnableAdminServer

验证当前服务是否启动成功,访问地址:localhost:10080/monitor

  • 启动成功之后,默认的账户名:user 密码在控制台有生成,如图所示
    image.png

查询对应依赖的版本和依赖坐标信息,查询网址:http://search.maven.org/#browse http://mvnrepository.com/

创建一个Client

  • 添加依赖
<dependency>
	<groupId>de.codecentric</groupId>
	<artifactId>spring-boot-admin-starter-client</artifactId>
	<version>2.2.2</version>
</dependency>
  • 配置文件
server:
  port: 10081

spring:
  boot:
    admin:
      client:
        # 配置 Admin Server 的地址
        url: http://localhost:10080/monitor
        instance:
          name: client-test
          service-base-url: http://localhost:10081

# 打开客户端 Actuator 的监控
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always