Actuator 为springboot项目提供了很全面的监控和审查,通过启用和公开endpoints,可以很方便的查看项目中的一些指标。
专注于为中小企业提供网站设计制作、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业淅川免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
org.springframework.boot
spring-boot-starter-actuator
Actuator提供了很多内置的Endpoints,每一个EP都可以启用/禁用 和 公开。
当然,EP只有启动并公开之后,才会真正生效。
除了 shutdown 之外,所有的EP都是默认启用的,如果要启用/禁用EP,可使用以下配置:
management.endpoint.
比如启用 shutdown :
management.endpoint.shutdown.enabled=true
为了安全,在生产环境不建议启用所有的EP,而是按需启用,所以要首先禁用默认行为,然后启用需要的EP,如下:
management.endpoints.enabled-by-default=false
management.endpoint.info.enabled=true
这样只有启用的EP才会加载到上下文。
这样只是启用和禁用了EP,但是否暴露出去,还需要单独的配置。
EP会暴露应用的很多指标,所以非常重要和敏感,在生产环境一定要做好选择和安全防护。
暴露和隐藏使用以下配置:
# 针对 JMX 规范协议
management.endpoints.jmx.exposure.exclude
management.endpoints.jmx.exposure.include *
# 针对http协议
management.endpoints.web.exposure.exclude
management.endpoints.web.exposure.include health
使用 include 暴露Ep,使用 exclude 隐藏 Ep,其中 exclude 优先级高于 include。
星号 * 表示全部的,另外星号在properties和yaml中有一点不同:
在YAML中星号(*)具有特殊的含义,所以需要用双引号括起来,如 "*"
比如要隐藏所有的并仅仅启用health和info:
management.endpoints.web.exposure.include=health,info
比如要暴露所有并禁用env和beans:
management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env,beans
前文有述,EP包括很多敏感信息,一定要注意安全,那应该如何确保安全?
如果项目中使用了 spring security 或 shiro 等安全框架,可以把EP放在安全框架之后,和其他业务API一样保护起来。
或者,也可以使用RequestMatcher对象来配合使用,以控制某些用户具备访问权限,比如:
import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;
@Configuration(proxyBeanMethods = false)
public class MySecurityConfiguration {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.requestMatcher(EndpointRequest.toAnyEndpoint())
.authorizeRequests((requests) -> requests.anyRequest().hasRole("ENDPOINT_ADMIN"));
http.httpBasic();
return http.build();
}
}
这样只有具备 ENDPOINT_ADMIN 角色的用户才可以访问EP。
通过项目的 ip:port /actuator ,比如 localhost:8080/actuator:
可以通过配置修改路径:
# 修改 /actutor 为 /manage
management.endpoints.web.base-path=/manage
# 修改特定指标 /health 为 /myhealth
management.endpoints.web.path-mapping.health=myhealth
# 修改访问端口(默认和server.port相同)
management.server.port=8036
本文题目:如何做好对SpringBoot项目全面监控之Actuator
当前链接:http://www.mswzjz.cn/qtweb/news8/287258.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能