Spring cloud Spring boot admin显示网关服务器关闭的状态
我开发了一个微服务环境,它是由SpringCloud开发的 网关服务器由Zuul开发,并通过X.509证书认证(相互认证)进行保护 我使用SpringBootAdmin来监控微服务 我已经在我的应用程序中使用了Spring Cloud Discovery,并向Spring Boot Admin Server添加了一个DiscoveryClient:Spring cloud Spring boot admin显示网关服务器关闭的状态,spring-cloud,netflix-eureka,netflix-zuul,spring-boot-actuator,spring-boot-admin,Spring Cloud,Netflix Eureka,Netflix Zuul,Spring Boot Actuator,Spring Boot Admin,我开发了一个微服务环境,它是由SpringCloud开发的 网关服务器由Zuul开发,并通过X.509证书认证(相互认证)进行保护 我使用SpringBootAdmin来监控微服务 我已经在我的应用程序中使用了Spring Cloud Discovery,并向Spring Boot Admin Server添加了一个DiscoveryClient: @Configuration @EnableAutoConfiguration @EnableDiscoveryClient @EnableAdmi
@Configuration
@EnableAutoConfiguration
@EnableDiscoveryClient
@EnableAdminServer
public class ApiAdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(ApiAdminServerApplication.class, args);
}
}
Spring启动管理属性:
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=ALWAYS
spring.security.user.name=admin
spring.security.user.password=password
management.endpoint.metrics.enabled=true
management.endpoints.web.exposure.include=*
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled=true
management.metrics.tags.application=${spring.application.name}
server.ssl.enabled=true
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:tls/keyStore.p12
server.ssl.key-store-password=changeit
server.ssl.trust-store=classpath:tls/trustStore.jks
server.ssl.trust-store-password=changeit
server.ssl.trust-store-type=JKS
server.ssl.client-auth=need
服务发现属性:
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=ALWAYS
spring.security.user.name=admin
spring.security.user.password=password
management.endpoint.metrics.enabled=true
management.endpoints.web.exposure.include=*
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled=true
management.metrics.tags.application=${spring.application.name}
server.ssl.enabled=true
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:tls/keyStore.p12
server.ssl.key-store-password=changeit
server.ssl.trust-store=classpath:tls/trustStore.jks
server.ssl.trust-store-password=changeit
server.ssl.trust-store-type=JKS
server.ssl.client-auth=need
网关属性:
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=ALWAYS
spring.security.user.name=admin
spring.security.user.password=password
management.endpoint.metrics.enabled=true
management.endpoints.web.exposure.include=*
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled=true
management.metrics.tags.application=${spring.application.name}
server.ssl.enabled=true
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:tls/keyStore.p12
server.ssl.key-store-password=changeit
server.ssl.trust-store=classpath:tls/trustStore.jks
server.ssl.trust-store-password=changeit
server.ssl.trust-store-type=JKS
server.ssl.client-auth=need
网关服务器作为应用程序显示在spring boot管理面板中,但其状态为关闭
如何配置spring boot admin以监控https网关应用程序?spring boot admin调用
/exactor/health
端点以了解应用程序的运行状况。请检查此终结点是否正常工作,否则,您可能需要根据您的需求对其进行配置。
默认情况下,Spring检查此处提到的许多运行状况指标:
您还可以配置自己的指示器,这是文档中的一个片段:
我在网关的application.properties文件中禁用SSL身份验证:
management.server.ssl.enabled=false
并忽略网关的WebSecurityConfigureAdapter类中的url路径:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf()
.disable()
.authorizeRequests()
.antMatchers( "/actuator/health/**").permitAll()
.anyRequest().authenticated().and()
.x509()
.subjectPrincipalRegex("CN=(.*?)(?:,|$)")
.userDetailsService(userDetailsService());
}
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/actuator/**");
}
但要小心,此解决方案会为所有请求公开网关服务器的重要运行状况信息