上一章节,我们介绍了Actuator的使用,知道了可通过访问不同的端点路径,获取相应的监控信息。但使用后也能发现,返回的监控数据都是以JSON串的形式进行返回的,对于实施或者其他人员来说,不是很直观,而当需要监控的应用越来越多时,依次去访问对应的应用也过于繁琐和低效了。所以,本章节来介绍下Spring Boot Admin这个UI监控工具。
Spring-Boot-Admin是什么先看看,官网给其定义:
简单来说,Spring Boot Admin是一个管理和监控Spring Boot应用程序的开源软件。每个应用都认为是一个客户端,通过HTTP或者服务注册发现Spring Cloud(Eureka、Consul等等)注册到admin server中进行展示,Spring Boot Admin UI部分使用AngularJs将数据展示在前端。
Spring Boot Admin是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。它可以:在列表中浏览所有被监控spring-boot项目的基本信息,详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,还可以直接修改logger的level。
监控实例Spring Boot Admin包含admin-server与admin-client两个组件,admin-server通过采集actuator端点数据,显示在spring-boot-admin-ui上。
提醒:为了演示服务端和客户端,本实例创建了一个maven多模块项目。
admin-server端主要是数据展现功能,包含了一个ui页面。
创建一个spring-boot-admin-server工程。
0.引入pom依赖
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> </dependency> <dependencyManagement> <dependencies> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-dependencies</artifactId> <version>1.5.7</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>注意:由于使用的SprinBoot为1.5.15版本,所以选用的Spring Boot Admin版本为1.5.7版本。同时为了版本依赖,使用dependencyManagement加入了spring-boot-admin-dependencies进行版本管理。
1.启动类,加入注解@EnableAdminServer。
@SpringBootApplication @EnableAdminServer @Slf4j public class Chapter28AdminServerApplication { public static void main(String[] args) throws Exception { SpringApplication.run(Chapter28AdminServerApplication.class, args); log.info("Chapter28AdminServer启动!"); } }一个服务端就基本配置结束了,启动应用,访问::8080 ,即可看见监控页面了:
由于现在还没有加入客户端,所以应用列表都是空的。
admin-client端被监控的应用只需要加入相关依赖和服务端配置即可。
创建一个spring-boot-admin-client项目
0.引入pom依赖
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> </dependency>1.配置文件加入服务端地址等信息。
application.properties
# 应用名称 便于识别 spring.application.name=spring-boot-admin-client server.port=8081 #服务端地址 spring.boot.admin.url=http://127.0.0.1:8080 # 关闭安全认证 management.security.enabled=false # 利用info端点,加入版本等信息 info.version=@project.version@ info.name=@project.artifactId@ # 可自定义信息 info.author=oKong info.blog=http://blog.lqdev.cn/注意:为了能获取maven的配置内容,需要在pom文件中加入以下配置:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>build-info</goal> </goals> </execution> </executions> </plugin> </plugins> </build>只需要这两部,客户端就配置完了,启动下,访问:8080 ,即可看见监控页面已经包含了此应用数据了:
此时,我们点击详情,即可看见各类监控数据了。
环境变量:
线程信息:
日志相关:
若需要动态的修改日志级别,按官网的提示,需要加入logback-spring.xml文件,具体的可查看官网文档吧,写的很详细了。
其他监控指标,大家可以自行查看下。