新建服务端
新建springboot项目,导入server服务端依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/de.codecentric/spring-boot-admin-starter-server -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.2.2</version>
</dependency>
修改全局配置文件。
spring:
application:
name: admin-server
server:
port: 8080
启动服务端,访问http://localhost:8080
。来到如下页面,现在当然一个应用也没有。
新建客户端
新建springboot项目,导入client客户端依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/de.codecentric/spring-boot-admin-starter-client -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.2.2</version>
</dependency>
修改全局配置文件
spring:
application:
name: admin-client
boot:
admin:
client:
#服务端路径
url: http://localhost:8080
#让Spring Boot Admin服务端可以通过网络获取客户端的数据(否则默认会通过主机名去获取)
instance:
prefer-ip: true
service-url: http://localhost:8081
server:
port: 8081
management:
#打开actuator的端口
endpoints:
web:
exposure:
include: "*"
#总是展示端口状态
endpoint:
health:
show-details: always
启动客户端程序,重新访问服务端的http://localhost:8080
。来到如下页面,可以看到已经有一个应用上线了。
到处看看。
详情
日志
映射
登录管理
上面的操作没有任何安全性可言,还需加入spring security进行管理。
在服务端导入security包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
新建security配置类
package com.admin.config;
import de.codecentric.boot.admin.server.config.AdminServerProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.web.csrf.CookieCsrfTokenRepository;
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private final String adminContextPath;
public SecurityConfig(AdminServerProperties adminServerProperties) {
this.adminContextPath = adminServerProperties.getContextPath();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
// 跨域设置,SpringBootAdmin客户端通过instances注册,见InstancesController
http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.ignoringAntMatchers(adminContextPath + "/instances");
// 静态资源
http.authorizeRequests().antMatchers(adminContextPath + "/assets/**").permitAll();
http.authorizeRequests().anyRequest().authenticated();
// 整合admin-server-ui
http.formLogin().loginPage("/login").permitAll();
http.logout().logoutUrl("/logout").logoutSuccessUrl("/login");
// SpringBootAdmin客户端使用basic认证
http.httpBasic();
}
}
修改服务端全局配置文件
spring:
application:
name: admin-server
security:
user:
name: admin
password: 123456
修改客户端配置文件
spring:
application:
name: admin-client
boot:
admin:
client:
#服务端路径
url: http://localhost:8080
#让Spring Boot Admin服务端可以通过网络获取客户端的数据(否则默认会通过主机名去获取)
instance:
prefer-ip: true
service-url: http://localhost:8081
#和服务端保持一致
username: admin
password: 123456
重启服务端访问http://localhost:8080
,自动跳转到登录界面。
输入设置好的账号密码即可成功登录。