Spring Boot Actuator / health endpoint不显示数据库或文件系统信息

时间:2016-04-05 13:51:47

标签: java spring oracle spring-boot spring-boot-actuator

我无法获取要显示在/ health端点上的数据库信息或文件系统信息。我只能得到:

{
  "status": "UP"
}

有关我的设置和配置的详细信息: - Spring Boot 1.3.3 - 在JBoss EAP 6.4上运行WAR - Datasource是JNDI资源。 - Oracle是数据库

spring:
  datasource:
    # Must match the datasource name in JBoss standalone.xml
    jndi-name: java:jboss/beautiful-ds
    driver-class-name: oracle.jdbc.driver.OracleDriver
  jpa:
    properties:
      # escapes reserved words used as column names (if any)
      globally_quoted_identifiers: true
    show-sql: true
    hibernate:
        naming_strategy: org.hibernate.cfg.EJB3NamingStrategy

server:
  servlet-path: /*

management:
  health:
    diskspace:
      enabled: true
    db:
      enabled: true
endpoints.health.sensitive: false

我在/ configprops上找到的一件事就是这个,我不确定它是否相关:

  "spring.datasource.CONFIGURATION_PROPERTIES": {
    "prefix": "spring.datasource",
    "properties": {
      "error": "Cannot serialize 'spring.datasource'"
    }

我曾尝试添加“driver-class-name:oracle.jdbc.driver.OracleDriver”,认为可能需要更多细节,但这并没有改变这种情况。

是的,是什么给出的?我做了一个vanilla示例项目,至少显示了文件系统的东西,所以不知道为什么要么不想在我的“真实”应用程序中显示。告诉我你伟大而明智的答案! :)

5 个答案:

答案 0 :(得分:5)

如果您使用弹簧安全性,则默认情况下会为执行器端点启用安全性,请在yml文件中禁用它 -

management:
    security:
           enabled: false

答案 1 :(得分:5)

默认情况下,Spring将以下属性设置为never。 为了能够查看完整的健康状况详细信息,请将以下属性添加到application.properties

management.endpoint.health.show-details=always

答案 2 :(得分:4)

来自spring-boot文档:

  

45.6 HealthIndicators的安全性

     

HealthIndicators返回的信息通常在某种程度上是敏感的。例如,   您可能不希望将数据库服务器的详细信息发布到   世界。因此,默认情况下,只有健康状态   通过未经身份验证的HTTP连接公开。如果你满意的话   完整的健康信息,以便您可以设置   endpoints.health.sensitive为false。健康反应也被缓存   防止“拒绝服务”攻击。使用   endpoints.health.time-to-live属性,如果你想改变   默认缓存周期为1000毫秒。

确保设置了以下属性。

endpoints.health.sensitive=true # Mark if the endpoint exposes sensitive information.
management.health.db.enabled=true # Enable database health check.
management.health.defaults.enabled=true # Enable default health indicators.
management.health.diskspace.enabled=true # Enable disk space health check.

答案 3 :(得分:1)

IIUC,聚合健康状况显示在/ health下,对于springboot2至少(IIUC)。这意味着,即使您已正确配置了所有内容,也只会显示一行。

更新:如果这不是您所需要的,则必须明确要求查看详细信息。检查以下设置:

management.endpoint.health.show-details=when-authorized
management.endpoint.health.roles=ADMIN

答案 4 :(得分:0)

您在配置文件中混合了YAML和属性语法。用以下内容替换最后一行,它应该起作用:

endpoints:
    health:
        sensitive: false