一、SpringBoot Admin
Server端:
1. Maven依賴
<!-- SpringBoot Admin監控 --> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>2.3.1</version> </dependency> <!-- Spring Security身份驗證 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
2. 注解
A. @EnableAdminServer:開啟Admin監控功能,作用在啟動類上;
3. application.yml配置文件
server:
port: 8070
spring: application: name: web-admin security: user: name: admin password: admin@123456 boot: admin: ui: title: web-admin
4. 登錄模塊(Spring Security)
package com.ruhuanxingyun.web.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.authentication.SavedRequestAwareAuthenticationSuccessHandler; import org.springframework.security.web.csrf.CookieCsrfTokenRepository; /** * @description: Admin監控 配置 * @author: ruphie * @date: Create in 2020/12/26 13:22 * @company: ruhuanxingyun */ @Configuration public class AdminConfig extends WebSecurityConfigurerAdapter { private final String adminContextPath; public AdminConfig(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/**" ); } }
5. 郵箱報警
Client端:
1. Maven依賴
<!-- SpringBoot Admin監控 --> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> <version>2.3.1</version> </dependency>
2. application.yml配置文件
server:
port: 8071
spring:
application:
name: admin-client boot: admin: client: enabled: true url: http://127.0.0.1:8070 instance: metadata: user.name: admin user.password: admin@123456 username: admin password: admin@123456 management: endpoints: web: base-path: /management exposure: include: "*" exclude: shutdown endpoint: health: show-details: ALWAYS logfile: enabled: true logging: file: name: path:
界面展示:
可參考:分布式 預警監控(SpringBootAdmin/Prometheus/Grafana)
二、Prometheus
1. Maven依賴
<!-- micrometer核心包,橋接prometheus --> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <version>1.2.0</version> </dependency>
可參考:Prometheus容器監控