通过restful api的方式查看信息过于繁琐,也不直观,效率低下。当服务过多的时候看起来就过于麻烦,每个服务都需要调用不同的接口来查看监控信息。
springboot核心注解参考:https://www.ctolib.com/topics-138637.html
SBA
SBA全称spring boot admin 是一个管理和监控spring boot 应用程序的开源项目,分为admin-server与admin-client两个组件,admin-server通过采集actuator端点数据,显示在spring -boot-admin-ui上,已知的端点几乎都有进行采集,通过spring-boot-admin可以动态切换日志级别、导出日志、导出heapdump、监控各项指标 等等
spring boot admin在对单一服务监控的同时也提供了集群监控方案,支持通过eureka、consul、zookeeper等注册中心的方式实现多服务监控与管理
参考官网文档:http://codecentric.github.io/spring-boot-admin/2.0.0/
在 Spring Boot 项目中,Spring Boot Admin 作为 Server 端,其他的要被监控的应用作为 Client 端
首先创建多模块springboot项目,参考https://blog.csdn.net/t2080305/article/details/81625433
1,server模块:
pom.xml
de.codecentric
spring-boot-admin-starter-server
2.1.0
org.springframework.boot
spring-boot-starter-actuator
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-starter-web
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
配置文件,application.properties:
server.port = 8000
spring.application.name=Spring Boot Admin Server
spring.boot.admin.url=http://localhost:${server.port}
spring.jackson.serialization.indent_output=true
启动类:
package com.sba.server;
import de.codecentric.boot.admin.server.config.EnableAdminServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* Created by Chen Xiang
* Date: 2019/4/28
* Proj: multisba
*/
@SpringBootApplication
@EnableAdminServer
@Slf4j
public class SbaServerApplication {
public static void main(String[] args) {
SpringApplication.run(SbaServerApplication.class, args);
}
}
启动,就可以通过localhost:8000访问服务器。
2,客户端:
pom.xml
de.codecentric
spring-boot-admin-starter-client
2.1.0
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-starter-web
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
配置文件:
server.port=8001
spring.application.name=Admin Client
spring.boot.admin.client.url=http://localhost:8000
management.endpoints.web.exposure.include=*
启动类:
package com.sba.client;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* Created by Chen Xiang
* Date: 2019/4/28
* Proj: multisba
*/
@SpringBootApplication
@Slf4j
public class SbaClientApplication {
public static void main(String[] args) {
SpringApplication.run(SbaClientApplication.class, args);
}
}
客户端启动之后,就可以在服务器端看到了。
Spring Boot Admin 以图形化的形式展示了应用的各项信息,这些信息大多都来自于 Spring Boot Actuator 提供的接口。
如果我们使用的是单个 Spring Boot 应用,就需要在每一个被监控的应用中配置 Admin Server 的地址信息;如果应用都注册在 Eureka 中就不需要再对每个应用进行配置,Spring Boot Admin 会自动从注册中心抓取应用的相关信息。
如果我们使用了 Spring Cloud 的服务发现功能,就不需要在单独添加 Admin Client 客户端,仅仅需要 Spring Boot Server ,其它内容会自动进行配置。可以使用Eureka。