最近lead了一个Spring Boot的项目,偶然从CSDN推送中发现了Spring Boot Admin,很感兴趣,就试用了一下。秉着“无笔记,无收获”的原则,写一篇入门笔记。如果能帮助到一些朋友,那就更美了。主要参考了官方文档Spring Boot Admin Reference Guide。
1. 什么是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应用程序的。应用程序需要注册为客户端,UI由AngularJs开发。
2. 怎么使用?
需要分别配置好服务端和客户端。
2.1 设置Server端
Server端简单的运行为一个Servlet应用就好。
2.1.1 新建一个SpringBoot项目
使用Spring Initializr快速创建:
- Group:com.example
-
Artifact: SpringBootAdmindemo
1.JPG
- 点击Generate Project下载zip包用IDEA打开
2.1.2 添加相关依赖
在pom.xml中添加以下依赖
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2.1.3 修改服务器端口
因为我本机8080端口被占用,修改application.properties中服务器端口为9998
server.port=9998
2.1.4 在启动类上添加@EnableAdminServer注释
@SpringBootApplication
@Configuration
@EnableAutoConfiguration
@EnableAdminServer
public class SpringBootAdmindemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootAdmindemoApplication.class, args);
}
}
启动应用,在浏览器中输入http://localhost:9998即可访问。当前没有应用注册。
2.2 设置客户端
客户端就是我们想要被监控的Spring Boot应用。
2.2.1 新建一个SpringBoot项目
新建一个SpringBoot项目作为客户端程序供测试使用。
同样使用Spring Initializr快速创建:
- Group:com.example.client
-
Artifact: SpringBootAdminClientdemo
3.JPG
2.2.2 添加依赖
在pom.xml中添加以下依赖
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2.2.3 注册应用到服务端
在application.properties中添加相关参数
- 服务端URL参数: http://localhost:9998。
- 默认情况下,大多数端点不是通过http公开的,这里我们公开所有端点。
- 同样修改一下应用端口为9997以免冲突
spring.boot.admin.client.url=http://localhost:9998
management.endpoints.web.exposure.include=*
server.port=9997
2.2.4 添加配置类SecurityPermitAllConfig使执行器端点可访问
package com.example.client.SpringBootAdminClientdemo.filter;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
public class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().permitAll()
.and().csrf().disable();
}
}
2.2.5 展示客户端版本信息
现在启动应用就可以在管理页面看到该客户端实例信息,为了展示客户端版本信息(其它信息请查阅Spring Boot Reference Guide),要在build的时候列出build-info,修改pom.xml*。
<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>
用maven package生成jar包,在命令行中启动客户端应用
java -jar SpringBootAdminClientdemo-0.0.1-SNAPSHOT.jar
启动成功后,会收到浏览器消息显示新应用上线。
进入管理页面,可以看到当前有一个应用。
点击Wallboard可以看到该应用详细信息。
3.结语
如有不清楚的地方,欢迎留言咨询,共同探讨。
网友评论