Spring Boot Admin
Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序。应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册(通过HTTP)或使用SpringCloud注册中心(例如Eureka,Consul)发现。 UI是的Vue.js应用程序,展示Spring Boot Admin Client的Actuator端点上的一些监控。
Spring Boot Admin为注册的应用程序提供以下功能:
显示健康状况
显示详细信息,例如:JVM和内存指标、micrometer.io指标、数据源指标、缓存指标
显示内部编号
关注并下载日志文件
查看JVM系统和环境属性
查看Spring Boot配置属性
支持Spring Cloud的可发布/ env-和// refresh-endpoint
轻松的日志级别管理
与JMX-beans交互
查看线程转储
查看http-traces
查看审核事件
查看http端点
查看预定的任务
查看和删除活动会话(使用spring-session)
查看Flyway / Liquibase数据库迁移
下载heapdump
状态更改通知(通过电子邮件,Slack,Hipchat等)
状态更改的事件日志(非持久性)
Spring Boot Admin使用
Spring Boot Admin 分为两部分。server端和client端。我们要做的就是部署server端,在我们的应用中集成client端。
创建Spring Boot Admin Server服务器端
1、将Spring Boot Admin Server服务器依赖添加到您的依赖项中:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.2.3</version>
</dependency>
2、通过添加@EnableAdminServer到配置中来引入Spring Boot Admin Server 配置:我直接在启动类上添加注解,当然你也可以在配置类上添加
@SpringBootApplication
@ServletComponentScan
@EnableAdminServer
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
至此,一个Spring Boot Admin Server就构建完成了
Spring Boot Admin Client客户端
在构建了Spring Boot Admin server服务端之后,我们就可以构建Spring Boot Admin Client客户端了
1、将spring-boot-admin-starter-client添加到您的依赖中,为了保护端点,我们还可以添加spring-boot-starter-security。
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.2.3</version>
</dependency>
注:spring-boot-admin-starter-client依赖已经包含了actuator依赖
2、在项目的配置文件中配置admin-server的地址,同时公开actuator的所有端口信息,如下
#Spring Boot Admin Server的注册地址,我这里设置的端口是8088
spring.boot.admin.client.url=http://localhost:8088
#与Spring Boot 2一样,默认情况下大多数端点都不通过http公开,我们公开了所有端点。对于生产,我们可以自行选择要公开的端点。
management.endpoints.web.exposure.include=*
启动Server和client项目,访问Server服务端。就可以客户端的状态了
点击应用墙,可以查看实例的各种信息
Spring boot Admin结合Spring Cloud注册中心使用
我们只需要将Spring Boot Admin客户端注册到Eureka 上,那么 Spring Boot Admin就可以通过Eureka获取到每个微服务的地址以及actuator暴露出来的地址。Spring Boot Admin就可以监控每个微服务实例了。
1、在Spring Boot Admin Server项目添加Eureka 依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2、启动类上增加 @EnableDiscoveryClient 注解开启注册功能
@EnableDiscoveryClient
@EnableAdminServer
@SpringBootApplication
public class SpringCloudDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringCloudDemoApplication.class, args);
}
}
3、在配置文件配置 Eureka 注册信息:
#指定服务注册中心地址
eureka.client.serviceUrl.defaultZone=http://localhost:2002/eureka/
# 采用IP注册
eureka.instance.preferIpAddress=true
# 暴露端点
management.endpoints.web.exposure.include=*
注:在注册中心的服务不需要添加admin 的 url 和 client 包的依赖