Spring Boot Admin (Server) et Spring Boot Admin (Client) ont été ajoutés à Spring Initializr, j'ai donc décidé de les toucher. Spring Boot Admin est une bibliothèque qui vous permet de surveiller les applications Spring Boot.
OS: macOS Sierra 10.12.6 Java: 1.8.0_102 Spring Boot: 1.5.10.RELEASE Spring Boot Admin: 1.5.7
Spring Boot Admin a une configuration serveur-client. Le serveur fournit l'écran de surveillance et le client est l'application à surveiller.
Spring Boot Admin Server
Sélectionnez Spring Boot Admin (Server)
dans Spring Initializr pour créer une application.
OK si spring-boot-admin-starter-server
est ajouté à depenedency
.
(Si vous le créez à partir de Spring Initializr comme ci-dessus, il sera ajouté naturellement, vous ne devriez donc pas avoir besoin de modifier pom.xml)
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>
Après cela, il est nécessaire de supprimer l'annotation @ SpringBootApplication
de la classe ʻApplication` et d'ajouter l'annotation comme suit.
SpringBootAdminServerApplication.java
@Configuration
@EnableAutoConfiguration
@EnableAdminServer
public class SpringBootAdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootAdminServerApplication.class, args);
}
}
Si vous le démarrez en tant qu'application avec cela, le côté serveur est OK.
Si vous accédez à http: // localhost: 8080
, la page Web de surveillance sera affichée.
Spring Boot Admin Client
Sélectionnez Spring Boot Admin (Client)
dans Spring Initializr pour créer une application.
Puisque le client lui-même doit être démarré en tant qu'application, en supposant ici une application WEB, ajoutez également Web
.
Si vous le créez comme ci-dessus, spring-boot-admin-starter-client
(et spring-boot-starter-web
) doit être ajouté à dependency
.
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>
Une fois que vous avez entré les informations de connexion au serveur dans application.yml (personnellement, j'aime yml plutôt que les propriétés, donc je l'ai changé), c'est OK.
application.yml
server:
port: 3000 # ①
spring:
boot:
admin:
url: http://localhost:8080 # ②
management:
security:
enabled: false # ③
Je vais expliquer chaque propriété. ①: Spring Boot Admin Server démarre avec le port 8080 par défaut (car il n'est pas défini en particulier), assurez-vous donc que le port de démarrage n'est pas couvert. 2: informations de connexion au serveur d'administration Spring Boot. ③: Tous les points de terminaison sont sécurisés depuis Spring Boot 1.5.x. Puisqu'il est désactivé pour confirmation, il est décrit dans la section sécurité en production. Besoin d'être traité.
Après cela, il est préférable d'ajouter build-info
à pom.xml afin que les informations au moment de la construction (version, artefact, etc.) soient affichées.
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>
Tout ce que vous avez à faire est de le démarrer.
L'écran ressemble à ceci.
Ce qui m'a immédiatement mis mal à l'aise, c'est que l'affichage n'était pas au fil du temps. En d'autres termes, seul l'état actuel de l'instantané est affiché. Par conséquent, on ne sait pas si l'état est un état dans lequel la charge est plus élevée que d'habitude. Je pense que c'est le plus gros inconvénient. Pour être honnête, c'est difficile à voir, et c'est difficile à utiliser car je ne peux pas dire si c'est normal ou non.
Le processus principal est décrit dans le package de.codecentric.boot.admin.client.registration
.
Le côté client ne fait que planifier et s'inscrire du côté serveur.
classe | Aperçu du traitement |
---|---|
RegistrationApplicationListener | Inscrivez-vous et annulez la programmation. La méthode de la classe ApplicationRegistrator est appelée au démarrage ou périodiquement. |
ApplicationRegistrator | La communication HTTP est effectuée avec l'administrateur du serveur Spring Boot et l'enregistrement est demandé côté serveur. |
En gros, il y a un processus de réception de HTTP et d'enregistrement, et un processus de mise à jour régulière du statut. Cliquez ici pour les classes qui sont principalement liées au processus de réception et d'enregistrement HTTP.
paquet | classe | Aperçu du traitement |
---|---|---|
de.codecentric.boot.admin.registry.web | RegistryController | Contrôleur qui reçoit l'API du côté client. |
de.codecentric.boot.admin.registry | ApplicationRegistry | Enregistrez les informations client en fonction des informations reçues du côté client. |
Cliquez ici pour le processus de mise à jour régulière du statut.
paquet | classe | Aperçu du traitement |
---|---|---|
de.codecentric.boot.admin.registry | StatusUpdateApplicationListener | Inscrivez-vous et annulez la programmation. |
de.codecentric.boot.admin.registry | StatusUpdater | Accédez à l'API Actuator côté client et mettez à jour le statut. |
Lorsque je l'ai créé par défaut, les informations de validation de Git (ID de validation, branche, etc.) n'étaient pas affichées, j'ai donc vérifié les paramètres.
Spring Boot Admin affiche les informations de / info
de Spring Boot Actuator, vous pouvez donc ajouter les informations de Git à / info
. La méthode est la suivante.
Ajoutez git-commit-id-plugin
à pom.xml.
pom.xml
<build>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
</plugin>
</plugins>
</build>
C'est tout ce dont vous avez besoin!
Le git-commit-id-plugin
crée uniquement un fichier git.properties
, mais la classe GitInfoContributor
de Spring Boot Actuator trouve automatiquement le fichier et l'ajoute à / info
.
Après tout, il est dommage que le temps ne soit pas passé. Je me suis demandé si je prendrais la peine de l'adopter pour le projet. J'espère qu'il sera amélioré afin qu'il soit plus facile à utiliser à l'avenir.
De plus, si vous regardez le contenu de la bibliothèque, ce sera une expérience d'apprentissage. Parfois, je veux prendre le temps de vérifier la bibliothèque comme ça.
GitHub
Je l'ai téléchargé sur mon GitHub, veuillez donc vous y référer. spring-boot-admin-sample
Spring Boot Admin
Recommended Posts