Spring Boot Actuator ist ein Sub-Projekt von Spring Boot, das Funktionen zur Überwachung und Verwaltung laufender Spring Boot Anwendungen bietet. Es ermöglicht die Überwachung, Datenerfassung, Traffic-Analyse und Datenbankstatusprüfung, ohne dass zusätzlicher Code geschrieben werden muss.
Sobald ein Projekt mit Spring Actuator konfiguriert ist, stehen standardmäßig mehrere Endpunkte zur Verwaltung und Überwachung der Anwendung bereit. Bei Bedarf können neue Endpunkte hinzugefügt werden, um weitere Kontrollmöglichkeiten zu implementieren.
Konfiguration von Actuator in Spring Boot
Um Actuator zu verwenden, fügen Sie einfach die Abhängigkeit spring-boot-starter-actuator
zur Datei pom.xml
(Maven) oder build.gradle
(Gradle) hinzu.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Nach dem Hinzufügen der Abhängigkeit und dem Neustart der Anwendung ist Actuator aktiviert.
Spring Boot Actuator bietet Endpunkte für den Zugriff auf Informationen über die Anwendung. Der Zugriff auf diese Endpunkte erfolgt über HTTP.
Einige wichtige Endpunkte sind:
- /health: Liefert Informationen über den „Gesundheitszustand“ der Anwendung, z. B. den Status der Datenbankverbindung. Dieser Endpunkt erfordert standardmäßig keine Authentifizierung.
- /info: Zeigt benutzerdefinierte Informationen über die Anwendung an, z. B. Version und Beschreibung.
- /metrics: Bietet „Metriken“ der Anwendung zum aktuellen Zeitpunkt, z. B. Speichernutzung und Anzahl der Threads.
- /loggers: Zeigt die Log-Konfiguration der Anwendung an und ermöglicht deren Änderung.
Detaillierte Informationen zum Anwendungsstatus werden von Beans gesammelt, die das Interface HealthIndicator
implementieren und im Kontext konfiguriert sind.
Beispielsweise kann der Endpunkt /health
einfache Informationen wie folgt zurückgeben:
{
"status": "UP"
}
Neben der Verwendung der Standardendpunkte können Sie auch eigene Endpunkte erstellen und anpassen. Die Anpassung kann die Änderung der id
, des Status enabled
(aktiviert/deaktiviert) und der sensitive
(Sensibilität – Authentifizierung erforderlich oder nicht) des Endpunkts umfassen.
Um einen neuen Endpunkt zu erstellen, müssen Sie das Interface Endpoint<T>
implementieren und die Verarbeitungslogik für diesen Endpunkt definieren.
Spring Boot Actuator unterstützt verschiedene Technologien, darunter Spring MVC und JMX. Es ist auch in Spring Security integriert, um den Zugriff auf die Endpunkte zu sichern. Die Konfiguration der Sicherheit für Actuator ist wichtig, um unbefugten Zugriff auf sensible Informationen der Anwendung zu verhindern.
Die Konfiguration der Endpunkte kann über Properties- oder YAML-Dateien erfolgen. Um beispielsweise die ID des Endpunkts /beans
in /springbeans
zu ändern und den Zugriff ohne Authentifizierung zuzulassen:
endpoints.beans.id=springbeans
endpoints.beans.sensitive=false
endpoints.beans.enabled=true