Ich kann keine Datenbankinformationen oder Dateisysteminformationen abrufen, die auf dem Endpunkt/health angezeigt werden. Ich kann nur bekommen:
{
"status": "UP"
}
Details zu meiner Einrichtung und Konfiguration: - Spring Boot 1.3.3 - Ausführen der WAR-Datei unter JBoss EAP 6.4 - Datenquelle ist eine JNDI-Ressource .- Oracle ist die Datenbank
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
Eine Sache, die ich auf/configprops gefunden habe, ist diese, von der ich nicht sicher bin, ob sie damit zusammenhängt:
"spring.datasource.CONFIGURATION_PROPERTIES": {
"prefix": "spring.datasource",
"properties": {
"error": "Cannot serialize 'spring.datasource'"
}
Ich hatte versucht, "driver-class-name: Oracle.jdbc.driver.OracleDriver" hinzuzufügen. Ich dachte, es brauche vielleicht mehr Details, aber das änderte nichts an der Situation.
ja, was gibt es? Ich habe ein Vanilla-Beispielprojekt erstellt, das zumindest das Dateisystem-Zeug zeigt, also nicht sicher, warum entweder keiner in meiner "echten" App angezeigt werden soll. Sag mir deine großartigen und klugen Antworten! :)
Wenn Sie die Federsicherheit verwenden, ist die Sicherheit für Aktorendpunkte standardmäßig aktiviert. Deaktivieren Sie sie in Ihrer yml-Datei.
management:
security:
enabled: false
Standardmäßig setzt Spring die folgende Eigenschaft auf never
. Um die vollständigen Gesundheitsdaten anzeigen zu können, fügen Sie Ihrem application.properties
die unten stehende Eigenschaft hinzu.
management.endpoint.health.show-details=always
Aus der spring-boot
Dokumentation:
45.6 Sicherheit mit HealthIndicators
Von HealthIndicators zurückgegebene Informationen sind oft etwas empfindlich. Zum Beispiel, Sie möchten wahrscheinlich keine Details Ihres Datenbankservers auf .__ veröffentlichen. die Welt. Aus diesem Grund ist standardmäßig nur der Integritätsstatus ausgesetzt über eine nicht authentifizierte HTTP-Verbindung. Wenn Sie sich für .__ freuen. Vollständige Informationen zum Gesundheitszustand, damit Sie immer angezeigt werden können Endpunkte.gesundheit.empfindlich auf falsch. Gesundheitsantworten werden ebenfalls zwischengespeichert um Denial-of-Service-Angriffe zu verhindern. Verwenden Sie die endpoints.health.time-to-live-Eigenschaft, wenn Sie das .__ ändern möchten. Standard-Cache-Zeitraum von 1000 Millisekunden.
Stellen Sie sicher, dass die folgenden Eigenschaften festgelegt sind.
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, der Aggregate Health wird unter/Health angezeigt, mindestens (IIUC) für Springboot2. Das heißt, auch wenn Sie alles richtig konfiguriert haben, wird nur eine Zeile angezeigt.
UPDATE: und wenn dies nicht das ist, was Sie brauchen, müssen Sie gezielt nach Details fragen. Überprüfen Sie diese Einstellungen:
management.endpoint.health.show-details=when-authorized
management.endpoint.health.roles=ADMIN
Sie haben YAML und Properties-Syntax in Ihre Konfigurationsdatei gemischt. Ersetzen Sie die letzte Zeile durch Folgendes, und es sollte funktionieren:
endpoints:
health:
sensitive: false