web-dev-qa-db-ja.com

Spring Boot Actuator / healthエンドポイントにデータベースまたはファイルシステムの情報が表示されない

/ healthエンドポイントに表示するデータベース情報またはファイルシステム情報を取得できません。私だけが手に入る:

{
  "status": "UP"
}

セットアップと設定の詳細:-Spring Boot 1.3.3-JBoss EAP 6.4でのWARの実行-データソースは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で見つけたものの1つはこれです。これが関連しているかどうかはわかりません。

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

「driver-class-name:Oracle.jdbc.driver.OracleDriver」を追加してみたところ、詳細が必要になると思われましたが、状況は変わりませんでした。

そうそう、何ができますか?私はバニラのサンプルプロジェクトを作成しましたが、少なくともゲートからファイルシステムのものが表示されているので、なぜ「実際の」アプリで表示したくないのかはわかりません。あなたの素晴らしい賢明な答えを教えてください! :)

13
jeremy simon

デフォルトでは、Springは以下のプロパティをneverに設定します。完全なヘルスの詳細を表示できるようにするには、application.propertiesに以下のプロパティを追加します。

management.endpoint.health.show-details=always
6
saikiran

Springセキュリティを使用している場合、デフォルトでアクチュエータエンドポイントのセキュリティが有効になっています。ymlファイルで無効にしてください-

management:
    security:
           enabled: false
5
Derick

から spring-boot ドキュメンテーション:

45.6 HealthIndicatorsによるセキュリティ

HealthIndicatorsによって返される情報は、多くの場合、本質的に機密性があります。たとえば、データベースサーバーの詳細を世界中に公開したくない場合があります。このため、デフォルトでは、認証されていないHTTP接続でヘルスステータスのみが公開されます。完全なヘルス情報が常に公開されることに満足している場合は、endpoints.health.sensitiveをfalseに設定できます。 「サービス拒否」攻撃を防ぐために、ヘルス応答もキャッシュされます。デフォルトのキャッシュ期間である1000ミリ秒を変更する場合は、endpoints.health.time-to-liveプロパティを使用します。

以下のプロパティが設定されていることを確認してください。

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.
4
TheKojuEffect

IIUC、集合体のヘルスは/ healthに表示され、少なくともspringboot2の場合は(IIUC)です。つまり、すべてを適切に構成した場合でも、1行だけが表示されます。

更新:これが必要なものでない場合は、詳細を確認するよう具体的に依頼する必要があります。次の設定を確認してください:

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

設定ファイルでYAMLとプロパティの構文を混在させました。最後の行を次のように置き換えれば、うまくいくはずです。

endpoints:
    health:
        sensitive: false
0
dunni