Spring Boot Admin 是一个管理和监控Spring Boot 应用程序的开源软件
非 Spring Cloud Discovery 型配置
server端
pom.xml引入 server 端依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--springBoot admin server 端依赖-->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.4.3</version>
</dependency>
</dependencies>
启动类添加启动注解
@SpringBootApplication
@EnableAdminServer
public class SpringbootAdminApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootAdminApplication.class, args);
}
}
配置文件
server:
port: 8088
spring:
application:
name: ludb-admin-1 #应用名称
Admin Client 端
pom文件引入client端注解和验证注解
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
config文件为关闭安全验证以便读取服务信息
package com.eurekaclient1.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
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();
}
}
配置文件
server:
port: 8081
spring:
application:
name: ludb-client-1 #应用名称
#配置springBoot Admin 的服务地址
boot:
admin:
client:
url: http://localhost:8088
#与 Spring Boot 2 一样,默认情况下大多数端点都没有通过 http 公开,我们公开了所有端点
management:
endpoints:
web:
exposure:
include: '*'
Spring Cloud Discovery 型配置
如果我们使用的是单个Spring Boot应用,就需要在每一个被监控的应用中配置Admin Server的地址信息;如果应用都注册在Eureka中就不需要再对每个应用进行配置,Spring Boot Admin会自动从注册中心抓取应用的相关信息。
Spring Cloud Discovery 型配置增加修改如下:
admin server 端
增加eureka配置
<!--eureka-client端依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
启动类增加eureka 的client端注解(@EnableDiscoveryClient)
@SpringBootApplication
@EnableAdminServer
@EnableDiscoveryClient
public class SpringbootAdminApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootAdminApplication.class, args);
}
}
增加 eureka相关配置
server:
port: 8088
spring:
application:
name: ludb-admin-1 #应用名称、
eureka:
instance:
prefer-ip-address: true #是否使用IP地址注册(用于eureka展示)
instance-id: ${spring.cloud.client.ip-address}:${server.port} #当前客户端IP:端口
client:
# 设置服务注册中心地址【向注册中心集群注册(注册两台是为了防止第一台宕机还可以挂在第2台上)】
service-url:
defaultZone: http://ludb:ludb123@localhost:8761/eureka/,http://ludb:ludb123@localhost:8762/eureka/
registry-fetch-interval-seconds: 10 #表示10秒拉取一次服务注册信息,默认30秒
register-with-eureka: true #是否将自己注册到注册中心,默认true
admin client 端
配置增加eureka相关配置,并注释掉springBoot Admin的路由地址
server:
port: 8081
eureka:
instance:
prefer-ip-address: true #是否使用IP地址注册(用于eureka展示)
instance-id: ${spring.cloud.client.ip-address}:${server.port} #当前客户端IP:端口
client:
# 设置服务注册中心地址【向注册中心集群注册(注册两台是为了防止第一台宕机还可以挂在第2台上)】
service-url:
defaultZone: http://ludb:ludb123@localhost:8761/eureka/,http://ludb:ludb123@localhost:8762/eureka/
registry-fetch-interval-seconds: 10 #表示10秒拉取一次服务注册信息,默认30秒
register-with-eureka: true #是否将自己注册到注册中心,默认true
spring:
application:
name: ludb-client-1 #应用名称
# #配置springBoot Admin 的服务地址
# boot:
# admin:
# client:
# url: http://localhost:8088
#与 Spring Boot 2 一样,默认情况下大多数端点都没有通过 http 公开,我们公开了所有端点
management:
endpoints:
web:
exposure:
include: '*'
可以参考官网文档:https://codecentric.github.io/spring-boot-admin/current/