目录
Spring Boot Admin 的介绍及使用
Spring Boot 有一个非常好用的监控和管理的源软件,这个软件就是 Spring Boot Admin。该软件能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。
主要的功能点有:
-
显示应用程序的监控状态
-
应用程序上下线监控
-
查看 JVM,线程信息
-
可视化的查看日志以及下载日志文件
-
动态切换日志级别
-
Http 请求信息跟踪
-
其他功能点……
创建一个 module 模块 blog-admin-server,用于展示各个服务中的监控信息,加上 Spring Boot Admin Server 的依赖,具体代码如下所示:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
创建一个启动类,具体代码如下所示:
@Configuration
@EnableAutoConfiguration
@EnableAdminServer
public class BlogAdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(BlogAdminServerApplication.class, args);
}
}
在属性文件中增加基本配置信息:
server:
port: 7101
spring:
application:
name: blog-admin-server
启动程序,访问 Web 地址 http://localhost:7101 就可以看到主页面了,这个时候是没有数据的,如图所示。
创建一个 module 模块 blog-admin-client,加上 Spring Boot Admin Client 的依赖,具体代码如下所示:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
根据开头所述 Spring Boot Admin 是基于 Spring Boot Actuator 之上的,所以我们需要引入Spring Boot Actuator相关依赖。此外我们需要处理 Actuator 的安全性,所以引入 Spring Security相关依赖。
在属性文件中增加配置信息:
server:
port: 7102
spring:
application:
name: blog-admin-client
boot:
admin:
client:
url:
- http://localhost:7101
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
spring.boot.admin.client.url
要注册到其中的Spring Boot Admin Server的URL 。
management.endpoints.web.exposure.include
与Spring Boot 2一样,默认情况下,大多数Actuator(端点)都不通过 http 公开,在这里我们公开了所有端点。对于生产,应该仔细选择要公开的端点。
为了简洁起见,我们暂时禁用安全性:
@Configuration
public class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().permitAll()
.and().csrf().disable();
}
}
如果 Spring Boot Admin 服务开启了认证,监控的服务中也需要配置对应的用户名和密码,否则会注册失败。
此时我们同时运行服务端和客户端服务,再次访问 http://localhost:7101,可以看到我们的客户端服务已经注册进去,并且可以看到客户端服务的一些信息。
查看应用墙:
点击实例可以查看 blog-admin-client 具体的信息: