Spring Boot Actuator ist ein Unterprojekt von Spring Boot, das produktionsbereite Funktionen bereitstellt, die Ihnen bei der Überwachung und Verwaltung Ihrer Anwendung helfen. Es bietet eine Reihe integrierter Endpunkte, mit denen Sie Einblicke in den Zustand, die Metriken und die Umgebung Ihrer Anwendung gewinnen und diese dynamisch steuern können.
Spring Boot Actuator bietet mehrere sofort einsatzbereite Endpunkte, die zur Überwachung und Interaktion mit Ihrer Anwendung verwendet werden können. Auf diese Endpunkte kann über HTTP, JMX oder mit Spring Boot Admin zugegriffen werden.
Um Actuator in Ihrer Spring Boot-Anwendung zu verwenden, müssen Sie die Actuator-Abhängigkeit zu Ihrer pom.xml-Datei hinzufügen:
org.springframework.boot spring-boot-starter-actuator
Wenn Sie Gradle verwenden, fügen Sie Folgendes zu Ihrer build.gradle-Datei hinzu:
implementation 'org.springframework.boot:spring-boot-starter-actuator'
Standardmäßig sind nur wenige Endpunkte aktiviert. Sie können zusätzliche Endpunkte in Ihrer application.yml-Datei aktivieren:
management: endpoints: web: exposure: include: "*" # This exposes all available endpoints endpoint: health: show-details: always # Show detailed health information
Sobald Actuator eingerichtet ist, können Sie auf die verschiedenen von ihm bereitgestellten Endpunkte zugreifen. Hier sind einige häufig verwendete Endpunkte:
Der /actuator/health-Endpunkt liefert Informationen über den Zustand Ihrer Anwendung:
GET http://localhost:8080/actuator/health
Beispielantwort:
{ "status": "UP", "components": { "db": { "status": "UP", "details": { "database": "H2", "result": 1 } }, "diskSpace": { "status": "UP", "details": { "total": 499963174912, "free": 16989374464, "threshold": 10485760, "exists": true } } } }
Der Endpunkt /actuator/metrics stellt verschiedene Metriken im Zusammenhang mit Ihrer Anwendung bereit:
GET http://localhost:8080/actuator/metrics
Beispielantwort:
{ "names": [ "jvm.memory.used", "jvm.gc.pause", "system.cpu.usage", "system.memory.usage", "http.server.requests" ] }
Um Details zu einer bestimmten Metrik zu erhalten:
GET http://localhost:8080/actuator/metrics/jvm.memory.used
Beispielantwort:
{ "name": "jvm.memory.used", "description": "The amount of used memory", "baseUnit": "bytes", "measurements": [ { "statistic": "VALUE", "value": 5.1234567E7 } ], "availableTags": [ { "tag": "area", "values": [ "heap", "nonheap" ] }, { "tag": "id", "values": [ "PS Eden Space", "PS Survivor Space", "PS Old Gen", "Metaspace", "Compressed Class Space" ] } ] }
Der /actuator/env-Endpunkt stellt Informationen über die Umgebungseigenschaften bereit:
GET http://localhost:8080/actuator/env
Beispielantwort:
{ "activeProfiles": [], "propertySources": [ { "name": "systemProperties", "properties": { "java.runtime.name": { "value": "Java(TM) SE Runtime Environment" }, "java.vm.version": { "value": "25.181-b13" } } }, { "name": "systemEnvironment", "properties": { "PATH": { "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" }, "HOME": { "value": "/root" } } } ] }
Der /actuator/info-Endpunkt stellt Informationen über die Anwendung bereit:
GET http://localhost:8080/actuator/info
Um die Informationen anzupassen, fügen Sie Eigenschaften in Ihrer application.yml hinzu:
info: app: name: My Spring Boot Application description: This is a sample Spring Boot application version: 1.0.0
Standardmäßig sind alle Actuator-Endpunkte ohne Authentifizierung zugänglich. Um diese Endpunkte zu sichern, können Sie Spring Security verwenden. Fügen Sie die Spring Security-Abhängigkeit zu Ihrer pom.xml hinzu:
org.springframework.boot spring-boot-starter-security
Aktualisieren Sie Ihre application.yml, um den Zugriff einzuschränken:
management: endpoints: web: exposure: include: "*" # Expose all endpoints endpoint: health: show-details: always # Show detailed health information spring: security: user: name: admin # Default username password: admin # Default password # Restrict actuator endpoints to authenticated users management: endpoints: web: exposure: include: "*" endpoint: health: show-details: always security: enabled: true roles: ACTUATOR
Erstellen Sie eine Sicherheitskonfigurationsklasse, um die HTTP-Sicherheit zu konfigurieren:
import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/actuator/**").hasRole("ACTUATOR") .anyRequest().authenticated() .and() .httpBasic(); } }
Mit dieser Konfiguration können nur authentifizierte Benutzer mit der ACTUATOR-Rolle auf die Actuator-Endpunkte zugreifen.
Sie können benutzerdefinierte Actuator-Endpunkte erstellen, um zusätzliche Informationen oder Funktionen speziell für Ihre Anwendung bereitzustellen. Hier ist ein Beispiel für die Erstellung eines benutzerdefinierten Endpunkts:
import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; import org.springframework.stereotype.Component; @Endpoint(id = "custom") @Component public class CustomEndpoint { @ReadOperation public String customEndpoint() { return "Custom Actuator Endpoint"; } }
Greifen Sie auf Ihren benutzerdefinierten Endpunkt zu:
GET http://localhost:8080/actuator/custom
Spring Boot Actuator bietet eine Reihe robuster Tools, die Sie bei der Überwachung und Verwaltung Ihrer Anwendung unterstützen. Durch die Nutzung der integrierten Endpunkte und der Möglichkeit, benutzerdefinierte Endpunkte zu erstellen, können Sie wertvolle Einblicke in die Leistung und den Zustand Ihrer Anwendung gewinnen. Sichern Sie diese Endpunkte mit Spring Security, um sicherzustellen, dass nur autorisierte Benutzer Zugriff haben, und Sie erhalten eine produktionsbereite Anwendung, die einfach zu verwalten und zu überwachen ist.
Actuator ist ein wesentlicher Bestandteil jeder Spring Boot-Anwendung und ermöglicht es Ihnen, den Überblick über die Laufzeitumgebung Ihrer Anwendung zu behalten und schnell auf auftretende Probleme zu reagieren. Beginnen Sie noch heute mit der Verwendung von Spring Boot Actuator, um die Beobachtbarkeit und Betriebsfähigkeit Ihrer Anwendung zu verbessern.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3