Prometheus云原生监控:运维与开发实战
上QQ阅读APP看书,第一时间看更新

3.2.2 application.properties配置

对于Spring Boot 2.x而言,如果需要集成Prometheus,那么application.properties的建议配置如下。


spring.application.name=Demo # 指定服务的名称
management.metrics.tags.application=${spring.application.name} # metrics应用指向
 # 上一行的demo

management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude = env,beans

management.endpoint.shutdown.enabled=true
management.metrics.export.simple.enabled=false

上述配置中,management.endpoint.shutdown.enabled=true用于对spring-boot-starter-actuator远程关闭服务进行配置,可以通过如下命令远程关闭Spring Boot微服务。


curl -X POST http:// localhost:8080/actuator/shutdown

Spring Boot官方文档的Actuator Security安全模块中有一段英文描述:“For security purposes,all actuators other than/health and/info are disabled by default.The management.endpoints.web.exposure.include property can be used to enable the actuators.”意思是出于安全考虑,默认情况下禁用除/health和/info之外的所有actuator,可用management.endpoints.web.exposure.include属性启用actuator。也就是说,actuator默认只开启了info和health,如果想要使用其他功能,需要在配置中添加类似如下的代码。


management.endpoints.web.exposure.include = * 
management.endpoints.web.exposure.exclude = env,beans

如果Spring Security位于classpath上且没有其他WebSecurityConfigurerAdapter,那么除了/health和/info之外的所有actuator都由Spring Boot自动配置保护。如果自定义了WebSecurityConfigurerAdapter,Spring Boot自动配置将不再生效,用户可以完全控制actuator的访问规则。

在设置management.endpoints.web.exposure.include之前,应确保暴露的actuator没有包含敏感信息,或者已经得到防火墙、Spring Security之类的保护。

Micrometer还附带一个简单的内存后端,如果没有配置其他注册表,该后端将自动用作备份。这允许用户查看在Metrics端点中收集了哪些指标。一旦使用任何其他可用后端,内存后端就会禁用自己。它的默认值为true,用户也可以用如下命令显式禁用它。


management.metrics.export.simple.enabled=false