弹簧启动器执行器健康状况恢复正常

Ste*_*eve 33 spring-boot

当我/health从Spring Boot应用程序(1.2.4.RELEASE)访问端点时,它返回的状态为DOWN:

{
    status: "DOWN"
}
Run Code Online (Sandbox Code Playgroud)

是否有任何已知的初始项目或库会覆盖状态?还有其他原因(除了写一个自定义的原因)为什么它会返回DOWN

Pau*_*l F 28

在Spring属性中,设置endpoints.health.sensitive = false.然后,/health端点将返回各种运行状况指示器的列表,您可以从那里进行调试.

对于生产环境,您应该在/health端点周围启用安全性.

编辑

正如Vincent在下面指出的那样,management.security.enabled = false如果健康端点是安全的,那么你也需要它,这似乎是更新版Spring Boot的默认设置.

我在Spring Boot中看到的一个常见问题是它自动配置Solr,没有额外的配置,/health端点表明Solr是DOWN.解决此问题的一种简单方法是使用此批注禁用Application.java中的Solr自动配置: @SpringBootApplication(exclude={SolrAutoConfiguration.class})

  • Solr的好点,但更容易禁用它的方法是使用属性:management.health.solr.enabled = true (2认同)

Vin*_*t F 16

在我的情况下,我需要两个属性来获取更多细节:

endpoints.health.sensitive: false
management.security.enabled: false
Run Code Online (Sandbox Code Playgroud)

否则,我得到的只是一个DOWN状态.

我遇到了RabbitMQ连接的问题:我的应用程序还没有使用它,但我们已经开始连接一些与之相关的代码.该应用程序工作正常,但我们得到DOWN健康状态,这是非常令人费解的:Spring Boot在日志中出乎意料地保持沉默,因为在启动时没有显示错误(我可能需要更改我的配置以使其更加冗长)


Aru*_*dan 14

如果运行状况URL显示"DOWN"或HTTP 503 - Service Unavailable错误,请尝试在application.properties中添加以下属性

URL - http:// localhost:8080/actuator/health

management.endpoint.health.show-details=always
Run Code Online (Sandbox Code Playgroud)

现在网址应该显示的不仅仅是DOWN.如果无法访问Solr主机,则使用以下排除项忽略Solr检查 -

@SpringBootApplication(exclude = { SolrAutoConfiguration.class })
Run Code Online (Sandbox Code Playgroud)

现在健康应该出现了.运行状况检查基本上在内部验证预定义的运行状况检查(示例 - DataSourceHealthIndicator, DiskSpaceHealthIndicator, CassandraHealthIndicator等).

如果其中一个运行状况指示器已关闭,则运行状况将关闭,您可以在将上述属性添加到application.properties后将错误视为响应.


Ras*_*hmi 7

我在Springboot 2.1.0中遇到了同样的问题,{ status: "DOWN" } 即使应用程序启动了,/ actuator / health也返回 了。添加 management.health.defaults.enabled=false 到属性文件解决了该问题。