SpringBoot监控 - 集成springboot admin监控工具
上文中展示了SpringBoot提供了Actuator对应用进行监控和管理, 而Spring Boot Admin能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。 本文主要介绍springboot admin以及SpringBoot和springboot admin的集成。@pdai
知识准备
需要了解Spring Boot Admin和actuator之间的关系等。
什么是Spring Boot Admin?和actuator是什么关系?
Spring Boot Admin能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。
- Spring Boot Admin提供的主要功能
- 显示健康状况
-
显示详细信息,例如
- JVM和内存指标
- micrometer.io指标
- 数据源指标
- 缓存指标
- 显示构建信息编号
- 关注并下载日志文件
- 查看jvm系统和环境属性
- 查看Spring Boot配置属性
- 支持Spring Cloud的postable / env-和/ refresh-endpoint
- 轻松的日志级管理
- 与JMX-beans交互
- 查看线程转储
- 查看http跟踪
- 查看auditevents
- 查看http-endpoints
- 查看计划任务
- 查看和删除活动会话(使用spring-session)
- 查看Flyway / Liquibase数据库迁移
- 下载heapdump
- 状态变更通知(通过电子邮件,Slack,Hipchat,…)
- 状态更改的事件日志(非持久性)
更多的可以 参考
- Spring Boot Admin不是Spring团队提供的模块 ?
它是由Codecentric公司创建的,代码在 Github: spring-boot-admin 上。
- Spring Boot Admin和actuator是什么关系?
从如下POM的依赖关系可以看出Spring Boot Admin本质上集成了actuator,将实时警报,此外添加一些实时警报功能等。
SpringBoot Admin的Client和Server?
Spring Boot Admin(简称SBA)由两部分组成: SBA Server 和 SBA Client 。
SBA Server : 包括Admin用户界面并独立运行于被监控应用
SBA Client : 提供一种方式将被监控应用注册到 SBA Server
- 为什么Spring Boot Admin设计上会分为Server和Client两个部分 ?
- 首先,Spring Boot Admin做的是集中化的监控(比如应用的集群,多个服务或者微服务等),而不是每个应用都需要有一个UI。
- 其次,被监控的应用应该是和监控平台是分离的,比如Client应用会挂掉,这时候Server监控依然正常运行并发现和报警Client的异常状态。
- 再者,还要考虑和其它语言应用,其它平台等的集成等。
- 只能通过SBA Client注册到SBA Server吗 ?
并不是, 除了SBA Client, SBA 还支持:
- Spring Cloud Discovery: 为了支持一些微服务框架如SpringCloud等(因为微服务框架中已经包含了服务发现和注册模块)
- Python Applications Using Pyctuator: 为了支持其它语言开发的应用,比如Python
简单示例
本例子主要展示SBA Server + SBA Client注册的方式。
启用SBA Server
pom引入包
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.5.3</version>
</dependency>