/ 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」を追加してみたところ、詳細が必要になると思われましたが、状況は変わりませんでした。
そうそう、何ができますか?私はバニラのサンプルプロジェクトを作成しましたが、少なくともゲートからファイルシステムのものが表示されているので、なぜ「実際の」アプリで表示したくないのかはわかりません。あなたの素晴らしい賢明な答えを教えてください! :)
デフォルトでは、Springは以下のプロパティをnever
に設定します。完全なヘルスの詳細を表示できるようにするには、application.properties
に以下のプロパティを追加します。
management.endpoint.health.show-details=always
Springセキュリティを使用している場合、デフォルトでアクチュエータエンドポイントのセキュリティが有効になっています。ymlファイルで無効にしてください-
management:
security:
enabled: false
から 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.
IIUC、集合体のヘルスは/ healthに表示され、少なくともspringboot2の場合は(IIUC)です。つまり、すべてを適切に構成した場合でも、1行だけが表示されます。
更新:これが必要なものでない場合は、詳細を確認するよう具体的に依頼する必要があります。次の設定を確認してください:
management.endpoint.health.show-details=when-authorized
management.endpoint.health.roles=ADMIN
設定ファイルでYAMLとプロパティの構文を混在させました。最後の行を次のように置き換えれば、うまくいくはずです。
endpoints:
health:
sensitive: false