什么是spring-boot-admin
Spring Boot Admin 是一个基于spring boot 开发的可视化监控项目
,主要用户监控spring boot 项目各种状态以及实时指标
,也可以用来进行分布式日志的收集展示,兼容单体spring boot 服务以及spring cloud 微服务,
具体功能如下:
显示健康状况
显示详细信息,例如
JVM 和内存指标
micrometer.io 指标
数据源指标
缓存指标
显示构建信息编号
关注并下载日志文件
查看 jvm 系统和环境属性
查看 Spring Boot 配置属性
支持 Spring Cloud 的 postable /env- &/refresh-endpoint
简单的日志级别管理
与 JMX bean 交互
查看线程转储
查看 http 跟踪
查看审计事件
查看 http 端点
查看计划任务
查看和删除活动会话(使用 spring-session)
查看 Flyway / Liquibase 数据库迁移
下载堆转储
状态更改通知(通过电子邮件、Slack、Hipchat,...)
状态变化的事件日志(非持久性)
spring boot actutor 介绍
actuator 是spring boot admin的核心
actuator本身是将提服务集成方一些检测接口暴露,对外以http api形式提供get 接口
spring boot admin 主要就是调用这些接口并将数据进行展示,actuator 对外提供的接口主要有以下这些(以2.0+版本举例):
HTTP方法 | Endpoint | 描述 |
GET | /actuator | 查看有哪些 Actuator endpoint 是開放的 |
GET | /actuator/auditevent | 查看 audit 的事件,例如認證進入、訂單失敗,需要搭配 Spring security 使用,sample code |
GET |
/actuator/beans | 查看運行當下裡面全部的 bean,以及他們的關係 |
GET |
/actuator/conditions | 查看自動配置的結果,記錄哪些自動配置條件通過了,哪些沒通過 |
GET | /actuator/configprops | 查看注入帶有 @ConfigurationProperties 類的 properties 值為何(包含默認值) |
GET | /actuator/env (常用) | 查看全部環境屬性,可以看到 SpringBoot 載入了哪些 properties,以及這些 properties 的值(但是會自動* 掉帶有 key、password、secret 等關鍵字的 properties 的值,保護安全資訊) |
GET | /actuator/flyway | 查看 flyway DB 的 migration 資訊 |
GET | /actuator/health (常用) | 查看當前 SpringBoot 運行的健康指標,值由 HealthIndicator 的實現類提供(所以可以自定義一些健康指標資訊,加到這裡面) |
GET | /actuator/heapdump | 取得 JVM 當下的 heap dump,會下載一個檔案 |
GET | /actuator/info | 查看 properties 中 info 開頭的屬性的值,沒啥用 |
GET | /actuator/mappings | 查看全部的 endpoint(包含 Actuator 的),以及他們和 Controller 的關係 |
GET | /actuator/metrics(常用) | 查看有哪些指標可以看(ex: jvm.memory.max、system.cpu.usage),要再使用/actuator/metrics/{metric.name} 分別查看各指標的詳細資訊 |
GET | /actuator/scheduledtasks | 查看定時任務的資訊 |
POST | /actuator/shutdown | 唯一一個需要 POST 請求的 endpoint,關閉這個 SpringBoot 程式 |
调用这些接口的url 形式是 http://服务ip:服务端口/上面列表里的请求 路径
spring-boot-admin 整体运行原理
spring-boot-admin 主要是对spring boot actutor 各个监控端点进行封装,
然后进行ui展示,将原来繁琐的调用调用集中处理,减少了手动调用的流程,具体流程图如下: