Beliebte Suchanfragen
//

Spring Boot Admin

17.7.2014 | 2 Minuten Lesezeit

Ich möchte euch in diesem Blog kurz ein kleines Admin-Tool vorstellen.

Idee

Vielleicht noch vorweg. Wir haben Anfang des Jahres, in einem Kundenprojekt, unsere gesamte Batchumgebung auf Spring Boot umgestellt. Das bedeutet, dass wir nun statt einer großen JVM mit n Batches nun n JVMs laufen haben, die getrennt voneinander deployt, gestartet und verwaltet werden können. Nach dieser Umstellung haben wir nach einem Weg gesucht, eine Übersicht aller deployten Batches zu erhalten, sowie ggf. administrative Tätigkeiten auf diesen ausführen zu können. Hier wäre beispielsweise das Setzen von Loglevels zur Laufzeit genannt. Daraus entstand dann die Idee, dafür eine kleine Anwendung zu bauen.

Diese Anwendung sollte zunächst einmal folgende Features bieten

  • Übersicht aller installierten Anwendungen inklusive …
  • Versionsnummer
  • Status
  • Detailansicht einzelner Informationen der JVM
  • Download der Logdatei
  • Einsehen/Ändern von Loglevels

Umsetzung

Wie sollte es anders sein, auch dieses Anwendung wurde als Spring Boot Anwendung entwickelt. Der Name dieser Anwendung lautet spring-boot-admin und wird hier im folgenden auch so bezeichnet. Sie basiert folglich auf dem Spring Framework, jedoch Client-seitig auf AngularJS. Mit AngularJS werden die Spring Boot REST-Endpoints der einzelnen Anwendungen angeprochen und entsprechend visualisiert. Das Design wurde ist an das SpringIO -Design angelehnt bzw. wurde von dort auch teilweise kopiert (HTML Struktur / CSS).

Zwingend notwendig für die Nutzung des spring-boot-admin ist auch das Client-Paket, welches in jeder darzustellenden / zu administrierenden Anwendung als Abhängigkeit integriert werden muss. Dieser spring-boot-starter-admin-client enthält die notwendigen Abhängigkeiten, die spring-boot-admin von „seinen“ Anwendungen erwartet. Zudem ist darin eine AutoConfiguration enthalten, die zum einen REST-Controller in den Spring Context lädt, desweiteren aber auch den Registrator lädt, der die Registrierung der Anwendung beim spring-boot-admin übernimmt.

Neben der Abhängigkeit zu spring-boot-starter-admin-client muss eine registierfähige Anwendung noch mindestens zwei Properties in ihre application.properties einfügen. Zum einen die URL zum spring-boot-admin, um den REST-Endpoint für die Registrierung ansprechen zu können, zum anderen eine ID, die natürlich eindeutig sein muss und den Key in der Registry des spring-boot-admin darstellt.

Screenshots

Zu guter Letzt noch ein paar Screenshots, um sich ein kontretes Bild machen zu können.

Übersicht

Dies ist die Übersicht, welches eine Auflistung der registrierten Anwendungen bietet.

Details

Hier ist eine beispielhafte Detailanzeige zu sehen, die den /metrics-Endpoint aus dem Actuators-Paket ganz einfach visualisiert.

Loglevel

Beim setzen des Loglevels wird jolokia  genutzt, um JMX Beans über eine REST-Api zu steuern. Das standardmäßig von Spring Boot genutze Logging Framework logback  bietet einen JMXConfigurator an, der somit dann per REST angeprochen werden kann.

Ausblick

Zukünftig könnte man sich noch eine kleines Monitoring/Notification-Feature einbauen, welches den Status der Anwendungen überwacht und bei Änderungen, z.B. eine Email versendet.

Abschließend gilt noch zu sagen, dass das Projekt OpenSource ist, in GitHub zu finden  ist, und Pull Requests mit neuen Features natürlich gerne gesehen sind.

Beitrag teilen

//

Weitere Artikel in diesem Themenbereich

Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.

//

Gemeinsam bessere Projekte umsetzen.

Wir helfen deinem Unternehmen.

Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.

Hilf uns, noch besser zu werden.

Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.