转载

spring-boot-admin对spring-boot项目进行监控

今天需要使用 spring-boot-adminspring-boot项目 进行监控的功能,之前网上的版本都太老旧了,已经不适合现在总结一下。目前版本 spring-boot-admin 版本是 2.1.4spring-boot项目 版本是 2.1.4.RELEASE

创建Server项目

1、新建项目为boot-admin-server,并引入Jar包

<properties>
	<java.version>1.8</java.version>
	<spring-boot-admin.version>2.1.4</spring-boot-admin.version>
</properties>

<dependencies>
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
    	<groupId>de.codecentric</groupId>
    	<artifactId>spring-boot-admin-starter-server</artifactId>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-test</artifactId>
    	<scope>test</scope>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    </dependencies>
    
<dependencyManagement>
    <dependencies>
    	<dependency>
    		<groupId>de.codecentric</groupId>
    		<artifactId>spring-boot-admin-dependencies</artifactId>
    		<version>${spring-boot-admin.version}</version>
    		<type>pom</type>
    		<scope>import</scope>
    	</dependency>
    </dependencies>
</dependencyManagement>
复制代码

2、配置Spring-Security

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.authentication.SavedRequestAwareAuthenticationSuccessHandler;
import org.springframework.security.web.csrf.CookieCsrfTokenRepository;

import de.codecentric.boot.admin.server.config.AdminServerProperties;

@Configuration
public class SecuritySecureConfig extends WebSecurityConfigurerAdapter {
	
    private final String adminContextPath;
    
    public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
    	this.adminContextPath = adminServerProperties.getContextPath();
    }
    
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
        successHandler.setTargetUrlParameter("redirectTo");
        successHandler.setDefaultTargetUrl(adminContextPath + "/");
        
        http.authorizeRequests().antMatchers(adminContextPath + "/assets/**").permitAll()
        		.antMatchers(adminContextPath + "/login").permitAll().anyRequest().authenticated().and().formLogin()
        		.loginPage(adminContextPath + "/login").successHandler(successHandler).and().logout()
        		.logoutUrl(adminContextPath + "/logout").and().httpBasic().and().csrf()
        		.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
        		.ignoringAntMatchers(adminContextPath + "/instances", adminContextPath + "/actuator/**");
    }
}
复制代码

配置之后,访问需要用户名和密码

3、配置文件

server.port=8070
spring.security.user.name=admin
spring.security.user.password=123456

复制代码

修改端口,防止端口占用,同时指定用户名和密码

4、启动程序配置

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import de.codecentric.boot.admin.server.config.EnableAdminServer;

@SpringBootApplication
@EnableAdminServer
public class BootAdminServerApplication {

    public static void main(String[] args) {
    	SpringApplication.run(BootAdminServerApplication.class, args);
    }
}

复制代码

上述程序启动即可

配置Client项目

1、正常是自己的项目,这里为一个案例项目boot-admin-client,添加Jar包

<properties>
	<java.version>1.8</java.version>
	<spring-boot-admin.version>2.1.4</spring-boot-admin.version>
</properties>

<dependencies>
    <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>
    <dependency>
    	<groupId>de.codecentric</groupId>
    	<artifactId>spring-boot-admin-starter-client</artifactId>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-test</artifactId>
    	<scope>test</scope>
    </dependency>
    <dependency>
    	<groupId>org.springframework.security</groupId>
    	<artifactId>spring-security-test</artifactId>
    	<scope>test</scope>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
    	<dependency>
        	<groupId>de.codecentric</groupId>
        	<artifactId>spring-boot-admin-dependencies</artifactId>
        	<version>${spring-boot-admin.version}</version>
        	<type>pom</type>
        	<scope>import</scope>
    	</dependency>
    </dependencies>
</dependencyManagement>
复制代码

2、配置文件

# 开放所有页面节点  默认只开启了health、info两个节点
management.endpoints.web.exposure.include=*
# 去除配置文件信息
#management.endpoints.web.exposure.exclude=configprops
# 显示健康具体信息  默认不会显示详细信息  
management.endpoint.health.show-details=always

# server端地址
spring.boot.admin.client.url=http://127.0.0.1:8070
# 本client地址
spring.boot.admin.client.instance.service-url=http://127.0.0.1:8080

# 验证Admin用户名及密码 
spring.boot.admin.client.username=admin
spring.boot.admin.client.password=123456

spring.security.user.name=client
spring.security.user.password=123456
复制代码
原文  https://juejin.im/post/5cd3cdc0f265da03a97b04ef
正文到此结束
Loading...