1.初识SpringBoot Actuator
Actuator Endpoints(http接口)
SpringBoot Actuator 提供了很多原生端点,主要分三大类:
操作类:主要是指shutdown,用户可以发送一个请求将应用的监控功能关闭
应用类:自动配置信息,spring bean信息,ymal信息,环境信息
度量类:运行期间的动态信息,健康指标信息
2. SpringBoot Admin搭建监控服务器
定义:即是对Springboot Actuator的endpoints的接口封装
搭建监控服务器的步骤
- 添加SpringBoot Admin Starter自动装配依赖
-
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>版本号</version> </dependency>
-
添加启动注解:@EnableAdminServer
3. 应用注册到SpringBoot Admin Server
两种方式注册:
- 方式一: 被监控和管理的应用程序,使用SpringBoot Admin Client 库,通过Http调用注册到SpringBoot Admin Server上(推荐:单体的纯Springboot应用)
- 方式二:被监控和管理的应用程序,注册到SpringCloud集成的注册中心(nacos),然后SpringBoot Admin Server 通过注册中心过去各应用信息 (推荐:微服务应用)
具体的配置项:
# 添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>版本号</version>
</dependency>
#yaml文件中添加
spring:
security:
user:
name: admin
password: admin
cloud:
nacos:
discovery:
enabled: true
server-addr: 127.0.0.1:8848
namespace: xxxxxxxx
metadata:
management:
context-path: ${上下文}/actuator
user.name: admin
user.password: admin
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter{
private final String contextPath;
public SecurityConfig (AdminServerProperties pro){
this.contextPath = pro.getContextPath();
}
@Override
protected void configure(HttpSecurity http) throws Exception{
SavedRequestAwareAuthenticationSuccessHandler success =
new SavedRequestAwareAuthenticationSuccessHandler();
success.setTargeUrlParameter("redirectTo");
success.setDefaultTargetUrl(contextPath+"/");
http.authorizeRequests()
// 配置静态资源和登录
.antMatchers(contextPath+"/assets/**").permitAll()
.antMatchers(contextPath+"/login").permitAll()
.anyRequest().authenticated()
.and()
.formLogin().loginPage(contextPath+"/login").successHandler(success)
.and()
.logout().logoutUrl(contextPath+"/login")
.and()
.httpBasic()
.and()
.csrf()
.csrfTokenRespository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.ignoringAntMatchers(
contextPath+"/instances",
contextPath+"/actuator/**"
);
}
}
其他应用无需任何修改 即可!