springboot中的应用监控

一、开启端点
1.首先要引入相关依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2.在application.properties中进行相关配置,开发者可以使用执行器中的端点对应用进行监控或者应用进行交互,端点大部分默认开启的,如果开发者不想暴露太多端点,只开启info端点可以用以下语句

management.endpoints.enabled-by-default=false
management.endpoint.info.enabled=true

项目中该语句是非必写
二、暴露端点
web应用中,默认只有health和info两个端点暴露,如果想暴露更多端点可以进行配置,如想暴露mappings和metrics端点可以进行如下配置

management.endpoints.web.exposure.include=mappings,metrics

项目中该语句是非必写
三、端点保护
对外提供端点服务的时候,需要将端点保护起来,步骤如下
1.添加相关依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
</dependency>

2.新建ActuatorSecurity添加spring security配置

@Configuration
public class ActuatorSecurity extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.requestMatcher(EndpointRequest.toAnyEndpoint())
                .authorizeRequests()
                .anyRequest().hasRole("ADMIN")
                .and()
                .httpBasic();
    }
}

这段代码中,HttpSecurity 配置所有的Endpoint都需要具有ADMIN角色才能访问(注意不包括@RequestMapping注解定义的接口)
演示如下:
在application.properties中添加一个用户来代替数据库里新建客户信息:

spring.security.user.name=sang
spring.security.user.password=123
spring.security.user.roles=ADMIN

使用postman进行访问http://localhost:8080/actuator/health
当不写入账号密码时访问报错
在这里插入图片描述
在这里插入图片描述
当输入账号为sang,密码为123后,返回端点信息
在这里插入图片描述
在这里插入图片描述
总结来说,就是先开启端点保证端点可用,然后是端点暴露保证客户端可以访问端点,最后为了安全需要对端点进行保护

发布了12 篇原创文章 · 获赞 1 · 访问量 142

猜你喜欢

转载自blog.csdn.net/u010574271/article/details/103459512