SpringbootAdmin
Spring Boot Admin是一个用于管理和监控Spring Boot应用程序的开源软件。
概要介绍
Spring Boot Admin可以监控Spring Boot单机或集群项目,它提供了详细的健康(Health)信息、内存信息、JVM系统和环境属性、垃圾回收信息、日志设置和查看、定时任务查看、Spring Boot缓存查看和管理等功能。
Spring Boot Admin分为server端和client端。server端可以查看各个微服务的状态,client端则将微服务注册到server端。它利用spring-boot-starter-actuator提供的功能,将各个微服务的状态整合到一起,并提供良好的界面查看支持,同时能够动态地修改实例日志级别。
主要功能
Spring Boot Admin UI部分使用AngularJs将数据展示在前端,是一个针对Spring Boot的actuator接口进行UI美化封装的监控工具。Spring Boot Admin 可以提供应用的以下监控信息:
- 监控应用运行过程中的概览信息;
- 度量指标信息,比如JVM、Tomcat及进程信息;
- 环境变量信息,比如系统属性、系统环境变量以及应用配置信息;
- 查看所有创建的Bean信息;
- 查看应用中的所有配置信息;
- 查看应用运行日志信息;
- 查看JVM信息;
- 查看可以访问的Web端点;
- 查看HTTP跟踪信息。
SpringbootAdmin管理中心实现
pom.xml
依赖版本可参考 springbootSeries 模块中pom.xml文件中的版本定义
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>3.2.3</version>
</dependency>
application.properties配置
主要注册了Consul注册中心,如果不需要可删除相关配置。
spring.profiles.active = dev
spring.application.name=SpringbootAdminServer
server.port=19888
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
spring.cloud.consul.discovery.service-name=${spring.application.name}
SpringbootApplication启动类
主要注册了Consul注册中心,如果不需要可删除相关配置。同时需要添加@EnableAdminServer
注解。
@Slf4j
@SpringBootApplication(scanBasePackages = {"com.korgs", "cn.hutool.extra.spring"})
@Configuration
@EnableConfigurationProperties
@ServletComponentScan
@RestController
@EnableDiscoveryClient
@EnableAdminServer
public class SpringbootAdminServerApplication {
@Value("${server.port}")
private String serverPort;
public static void main(String[] args) {
SpringApplication.run(SpringbootAdminServerApplication.class, args);
}
@GetMapping("/helloworld/{uuid}")
public BaseResponse<String> helloWorld(String uuid){
String str = LogGenerator.trackLog()
+ " uuid=" + uuid + " I am busy to handle this request."
+ " serverPort=" + serverPort;
log.info( str );
return BaseResponse.success(str);
}
}
SpringbootClient被测试服务
pom.xml
依赖版本可参考 springbootSeries 模块中pom.xml文件中的版本定义
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>3.2.3</version>
</dependency>
application.properties配置
主要注册了Consul注册中心,如果不需要可删除相关配置。添加spring.boot.admin.client.url
配置和management.XXXX
配置。
spring.profiles.active = dev
spring.application.name=SpringbootAdminClient
server.port=19889
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
spring.cloud.consul.discovery.service-name=${spring.application.name}
#配置admin-server地址
spring.boot.admin.client.url = http://localhost:19888
management.endpoints.web.exposure.include = *
management.endpoint.health.show-details=always
SpringbootApplication启动类
主要注册了Consul注册中心,如果不需要可删除相关配置。
@Slf4j
@SpringBootApplication(scanBasePackages = {"com.korgs", "cn.hutool.extra.spring"})
@Configuration
@EnableConfigurationProperties
@ServletComponentScan
@RestController
@EnableDiscoveryClient
public class SpringbootAdminClientApplication {
@Value("${server.port}")
private String serverPort;
public static void main(String[] args) {
SpringApplication.run(SpringbootAdminClientApplication.class, args);
}
@GetMapping("/helloworld/{uuid}")
public BaseResponse<String> helloWorld(String uuid){
String str = LogGenerator.trackLog()
+ " uuid=" + uuid + " I am busy to handle this request."
+ " serverPort=" + serverPort;
log.info( str );
return BaseResponse.success(str);
}
}
源码下载
涉及模块:
- springcloud-admin-server:19888:图形化界面监控中心,访问URI:http://localhost:19888
- springcloud-admin-client:19889:被监管的测试服务
源码下载:
- 基础框架源码下载
- Springboot集成SpringbootAdmin实现服务监控管理
源码运行方法:
- 模块详细功能说明和运行测试方法
打开 http://localhost:19888
,可看到如下界面:
查看client情况