使用Spring Boot Admin对应用进行监控
上一篇文章《使用Spring-Boot-Actuator监控应用》介绍了Spring Boot Actuator的使用,Spring Boot Actuator提供了对单个Spring Boot的监控,信息包含:应用状态、内存、线程、堆栈等等,比较全面的监控了Spring Boot应用的整个生命周期。
但是这样监控也有一些问题:
- 所有的监控都需要调用固定的接口来查看,如果全面查看应用状态需要调用很多接口,并且接口返回的Json信息不方便运维人员理解
- 如果Spring Boot应用集群非常大,每个应用都需要调用不同的接口来查看监控信息,操作非常繁琐低效。
在这样的背景下,就诞生了另外一个开源软件:Spring Boot Admin。
什么是Spring Boot Admin?
codecentric’s Spring Boot Admin is a community project to manage and monitor your Spring Boot ® applications. The applications register with our Spring Boot Admin Client (via HTTP) or are discovered using Spring Cloud ® (e.g. Eureka, Consul). The UI is just an AngularJs application on top of the Spring Boot Actuator endpoints.
其实Spring Boot Admin 是一个管理和监控Spring Boot 应用程序的开源软件。每个应用都认为是一个客户端,通过HTTP或者使用 Eureka注册到admin server中进行展示,Spring Boot Admin UI部分使用AngularJs将数据展示在前端。
Spring Boot Admin 是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。他可以:在列表中浏览所有被监控spring-boot项目的基本信息,详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,还可以直接修改logger的level。
这篇文章给大家介绍如何使用Spring Boot Admin对Spring Boot应用进行监控。
监控单体应用
Admin Server
首先我们新建一个Spring Boot Admin Server,在项目中添加如下依赖1
2
3
4
5
6
7
8
9
10
11<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server-ui</artifactId>
<version>1.5.6</version>
</dependency>
修改配置文件,将服务端的端口设置为8000
1
server.port=8000
在启动类添加如下配置1
2
3
4
5
6@Configuration @EnableAutoConfiguration @EnableAdminServer public class SpringBootAdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootAdminServerApplication.class, args);
}
}
配置完成之后我们启动项目,用浏览器访问http://localhost:8000
,可以看到的界面如下
由于没有客户端的应用,可以看到上面是空的,下面我们就来创建客户端应用。
Admin Client
我们再新建一个Spring Boot Admin Client,在项目中添加如下依赖1
2
3
4
5<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>1.5.6</version>
</dependency>
1 | server.port=8001 |
spring.boot.admin.url
配置Admin Server的地址management.security.enabled=false
关闭安全验证
配置完成之后,启动Client端服务,再次访问服务:http://localhost:8000
可以看到客户端的相关信息。
首页会展示被监控的各个服务,点击详情可以查看某个服务的具体监控信息。
通过上图可以看出,Spring Boot Admin以图形化的形式展示了应用的各项信息,这些信息大多都来自于Spring Boot Actuator提供的接口。
监控微服务
待续待续,目前我还没学到这些🤦