[JAVA] Aufbau und Eindruck von Spring Boot Admin ~ Tipps zum Anzeigen von Git-Commit-Informationen ~

Spring Boot Admin (Server) und Spring Boot Admin (Client) wurden zu Spring Initializr hinzugefügt, daher habe ich beschlossen, sie zu berühren. Spring Boot Admin ist eine Bibliothek, mit der Sie Spring Boot-Anwendungen überwachen können.

Bauen

Umgebung

OS: macOS Sierra 10.12.6 Java: 1.8.0_102 Spring Boot: 1.5.10.RELEASE Spring Boot Admin: 1.5.7

Bauverfahren

Spring Boot Admin verfügt über eine Server-Client-Konfiguration. Der Server stellt den Überwachungsbildschirm bereit, und der Client ist die zu überwachende Anwendung.

Spring Boot Admin Server

Wählen Sie unter Spring Initializr die Option "Spring Boot Admin (Server)" aus, um eine Anwendung zu erstellen.

OK, wenn "Spring-Boot-Admin-Starter-Server" zu "Abhängigkeit" hinzugefügt wird. (Wenn Sie es wie oben beschrieben aus Spring Initializr erstellen, wird es natürlich hinzugefügt, sodass Sie pom.xml nicht bearbeiten müssen.)

pom.xml


	<dependencies>
		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-server</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

Danach müssen Sie die Annotation "@ SpringBootApplication" der Klasse "Application" löschen und die Annotation wie folgt hinzufügen.

SpringBootAdminServerApplication.java


@Configuration
@EnableAutoConfiguration
@EnableAdminServer
public class SpringBootAdminServerApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringBootAdminServerApplication.class, args);
	}
}

Wenn Sie es damit als Anwendung starten, ist die Serverseite in Ordnung. Wenn Sie auf "http: // localhost: 8080" zugreifen, wird die Überwachungswebseite angezeigt.

Spring Boot Admin Client

Wählen Sie unter Spring Initializr "Spring Boot Admin (Client)" aus, um eine Anwendung zu erstellen. Da der Client selbst als Anwendung gestartet werden sollte und eine WEB-Anwendung hier vorausgesetzt wird, fügen Sie auch "Web" hinzu.

Wenn Sie es wie oben erstellen, sollten "Spring-Boot-Admin-Starter-Client" (und "Spring-Boot-Starter-Web") zu "Abhängigkeit" hinzugefügt werden.

pom.xml


	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-client</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

Sobald Sie die Verbindungsinformationen zum Server in application.yml eingegeben haben (ich habe sie geändert, weil mir persönlich eher yml als Eigenschaften gefällt), ist dies in Ordnung.

application.yml


server:
  port: 3000 # ①
spring:
  boot:
    admin:
      url: http://localhost:8080 # ②
management:
  security:
    enabled: false # ③

Ich werde jede Eigenschaft erklären. (1): Spring Boot Admin Server startet mit dem Standard-8080-Port (da dieser nicht speziell festgelegt ist). Stellen Sie daher sicher, dass der Boot-Port nicht abgedeckt ist. 2: Verbindungsinformationen zum Spring Boot Admin Server. ③: Alle Endpunkte sind seit Spring Boot 1.5.x sicher. Da es zur Bestätigung deaktiviert ist, wird es in der Produktion im Abschnitt Sicherheit beschrieben. Müssen behandelt werden.

Danach ist es besser, build-info zu pom.xml hinzuzufügen, damit die Informationen zum Zeitpunkt des Builds (Version, Artefakt usw.) angezeigt werden.

pom.xml


	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>build-info</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

Alles was Sie tun müssen, ist es zu starten.

Impressionen

Der Bildschirm sieht so aus.

スクリーンショット 2018-02-15 17.26.52.png

Fehler

Was mich sofort unwohl fühlte, war, dass das Display nicht im Laufe der Zeit war. Mit anderen Worten, nur der aktuelle Snapshot-Status wird angezeigt. Daher ist nicht bekannt, ob der Zustand ein Zustand ist, in dem die Last höher als gewöhnlich ist. Ich denke, das ist der größte Nachteil. Um ehrlich zu sein, ist es schwer zu sehen und es ist schwer zu benutzen, weil ich nicht sagen kann, ob es normal ist oder nicht.

verdienen

Ich habe versucht, ein wenig zu verfolgen

Interne Konstruktion (Spring Boot Admin Client)

Der Hauptprozess ist im Paket "de.codecentric.boot.admin.client.registration" beschrieben. Die Clientseite plant und registriert sich nur auf der Serverseite.

Klasse Überblick über die Verarbeitung
RegistrationApplicationListener Registrieren und stornieren Sie die Planung. Die Methode der ApplicationRegistrator-Klasse wird beim Start oder regelmäßig aufgerufen.
ApplicationRegistrator Die HTTP-Kommunikation wird mit dem Spring Boot Server-Administrator durchgeführt, und die Registrierung wird auf der Serverseite angefordert.

Interner Aufbau (Spring Boot Admin Server)

Es gibt ungefähr einen Prozess zum Empfangen und Registrieren von HTTP und einen Prozess zum regelmäßigen Aktualisieren des Status. Klicken Sie hier, um Klassen anzuzeigen, die sich hauptsächlich auf den Empfang und die Registrierung von HTTP beziehen.

Paket Klasse Überblick über die Verarbeitung
de.codecentric.boot.admin.registry.web RegistryController Controller, der die API vom Client empfängt.
de.codecentric.boot.admin.registry ApplicationRegistry Registrieren Sie die Kundeninformationen basierend auf den Informationen, die Sie von der Kundenseite erhalten haben.

Klicken Sie hier, um den Status regelmäßig zu aktualisieren.

Paket Klasse Überblick über die Verarbeitung
de.codecentric.boot.admin.registry StatusUpdateApplicationListener Registrieren und stornieren Sie die Planung.
de.codecentric.boot.admin.registry StatusUpdater Greifen Sie auf der Client-Seite auf die Actuator-API zu und aktualisieren Sie den Status.

Tipps: Anzeigen von Git-Commit-Informationen

Als ich es standardmäßig erstellt habe, wurden die Commit-Informationen von Git (Commit-ID, Zweig usw.) nicht angezeigt, daher habe ich die Einstellungen überprüft.

Spring Boot Admin zeigt die Informationen von / info von Spring Boot Actuator an, sodass Sie die Informationen von Git zu / info hinzufügen können. Die Methode ist wie folgt.

Fügen Sie git-commit-id-plugin zu pom.xml hinzu.

pom.xml


<build>
    <plugins>
        <plugin>
            <groupId>pl.project13.maven</groupId>
            <artifactId>git-commit-id-plugin</artifactId>
        </plugin>
    </plugins>
</build>

Das ist alles was Sie brauchen! Das git-commit-id-plugin erstellt nur eine git.properties-Datei, aber die GitInfoContributor-Klasse des Spring Boot Actuators findet die Datei automatisch und fügt sie zu / info hinzu.

Zusammenfassung

Immerhin ist es schlimm, dass die Zeit nicht vergangen ist. Ich fragte mich, ob ich mir die Mühe machen würde, es für das Projekt zu übernehmen. Ich hoffe, dass es verbessert wird, damit es in Zukunft einfacher zu bedienen ist.

Wenn Sie sich den Inhalt der Bibliothek ansehen, wird dies zu einer Lernerfahrung. Manchmal möchte ich mir die Zeit nehmen, die Bibliothek so zu überprüfen.

GitHub

Ich habe es auf meinen GitHub hochgeladen, bitte beziehen Sie sich darauf. spring-boot-admin-sample

Referenz

Spring Boot Admin

Informationen zum Git-Commit anzeigen

Recommended Posts

Aufbau und Eindruck von Spring Boot Admin ~ Tipps zum Anzeigen von Git-Commit-Informationen ~
WebMvcConfigurer-Memorandum von Spring Boot 2.0 (Spring 5)
Verschiedene Korrespondenztabellen zwischen Spring Framework und Spring Boot
Pläne zur Unterstützung von JDK 11 für Eclipse und Spring Boot
[Für Anfänger] DI ~ Die Grundlagen von DI und DI im Frühjahr ~
Abrufen von Fehlerinformationen mithilfe von DefaultErrorAttributes und ErrorAttributeOptions in Spring Boot 2.3
Spring 5 & Spring Boot 2 Einführung für Anfänger wurde veröffentlicht