首页>>后端>>SpringBoot->开发小技巧之Actuator

开发小技巧之Actuator

时间:2023-11-30 本站 点击:0

Actuator不是其他平台提供的,而是SpringBoot的四大核心之一。引入之后,通过简单的配置就可以监控SpringBoot的一些信息。

引入依赖

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

引入依赖之后,就可以监控我们的应用了。

简单的配置

我们这里为了演示方便,我们将所有端点设置为开启状态并且暴露在web端。如果是正式环境不可这样配置,可以结合Spring Security进行认证访问。

management:endpoints:#暴露所有端点信息enabled-by-default:trueweb:exposure:#以web方式暴露include:'*'endpoint:health:show-details:always

查看信息

配置完成之后,就可以直接查看这些端点的信息。

在url后拼接/actuator即可访问。

我们可以看到,有一个参数是shutdown,顾名思义应该是远程关闭程序的接口。接下来我们试试能不能远程关闭程序。

远程关闭程序

我们直接点击这个url,发送请求。

可以看到这是个Post请求,不能直接在浏览器访问,我们用postman试试。

从响应的信息来看,确实关闭了应用。接下来我们看看我们的应用是不是真的关闭了。

没错,这确实是远程关闭应用的接口,是不是很强大?这如果随意开放出去,被用户利用了那不是gg了,所以再次提醒大家,这些端口万不可随意开放。

保护端点

这些敏感端点必须需要开放,那就得增加安全策略,它可以和 Spring Security结合来保护这些端点。

示例如下:

importorg.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.security.config.annotation.web.builders.HttpSecurity;importorg.springframework.security.web.SecurityFilterChain;@Configuration(proxyBeanMethods=false)publicclassMySecurityConfiguration{@BeanpublicSecurityFilterChainsecurityFilterChain(HttpSecurityhttp)throwsException{http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests((requests)->requests.anyRequest().hasRole("ENDPOINT_ADMIN"));http.httpBasic();returnhttp.build();}}

使用这个配置,actuator的所有端点都需要ENDPOINT_ADMIN角色才能访问。

最后

actuator的监控端点有很多,使用方式也是多样的,大家感兴趣的可以直接访问官网来学习如何正确使用。它不仅能监控内存的信息,同时服务集成的数据库的状态也可监控,非常不错的一个监控服务性能的工具,大家快去看看吧。

WangScaler: 一个用心创作的作者。

声明:才疏学浅,如有错误,恳请指正。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/SpringBoot/4367.html