1、首先需要引入依賴:
<!-- prometheus config start-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- prometheus config end-->
spring-boot-starter-security依賴是爲了開啓對監控數據獲取接口(我這裏是/prometheus)進行用戶名密碼校驗的,如果沒有這個校驗我們的監控接口相當於在裸奔。任何人都可以通過這個接口獲取我們的監控數據
2、添加一個配置類,使prometheus知道我們當前項目的名稱以及其他信息
@Configuration
public class MicrometerConfiguration {
@Bean
MeterRegistryCustomizer meterRegistryCustomizer(MeterRegistry meterRegistry) {
return meterRegistry1 -> {
meterRegistry.config()
.commonTags("application", "micrometer-gateway");
};
}
}
- 3、添加一個security安全配置類
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private Environment env;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.requestMatchers().antMatchers("/actuator/**").and() .authorizeRequests().antMatchers("/actuator").authenticated().anyRequest().permitAll()
.and()
.formLogin().permitAll().and()
.logout().permitAll();
}
}
主要用途是對/monitor/*下的接口進行用戶名密碼校驗
-
4、配置application.properties
#監控地址前綴 management.endpoints.web.base-path=/monitor management.endpoints.web.exposure.include=* management.endpoints.jmx.exposure.include=* management.endpoints.shutdown.exposure.include=* management.metrics.distribution.percentiles-histogram[http.server.requests]=true #這是spring-boot-starter-security對應的basic_auth驗證開啓 spring.security.user.name=admin spring.security.user.password=admin