spring boot actuator 基本配置


1.5.3版本官方doc

spring-boot-actuator包自动提供了默认的management endpoint,用以监控容器内部的各种状态和指标。

import

dependencies {
	compile("org.springframework.boot:spring-boot-starter-actuator")
}

打开endpoints

endpoints默认状态就是打开的。如果想全部关掉,然后分别打开:

management:
  context-path: /actuator
  security:
    enabled: false
endpoints:
  enabled: false
  health:
    enabled: true
    time-to-live: 10000
  info:
    enabled: true

关于security

如果系统没有@EnableWebSecurity自行定制security的话,可以使用management.security.enabled来控制management endpoint中sensitive的访问权限,以及not sensitive的显示内容范围。如下:

management:
  context-path: /actuator
  security:
    enabled: true
security:
  basic:
    enabled: true
  user:
    name: admin
    password: secret

当@EnableWebSecurity后,所有访问权限都由WebSecurityConfigurerAdapter的子类full controll。

spring boot 1.4可以通过management.security.enabled=false来关闭对management endpoints的security check,是由于spring boot实现的一个bug。
spring boot 1.5中已经修复。
而在spring boot 2.0中已经将management.security.enabled去掉。
因此,在custom WebSecurityConfigurerAdapter中,还是使用正确的姿势对management endpoints进行特别设置:

...
.antMatchers("/info", "/health", "/metrics").permitAll()

关于management.port

management.port=9999虽然可以将management endpoint开放在独立的端口上,但/healthcheck并不能自动检测主端口是否可用。
因此,如果使用management.port时,可能需要自行定制一个HealthIndicator来ping主服务端口。


文章作者: Ellen Dan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-SA 4.0 许可协议。转载请注明来源 Ellen Dan !
评论
  目录