Spring Boot Admin

Spring Boot Admin (SBA) är en övervaknings tjänst för Spring boot applikationer. Den hämtar information från varje tjänst via actuators. SBA-server pollar med jämna intervaller (default 10s) varje registrerad tjänst endpoint /actuator/health och övervakar på detta vis alla registrerade tjänster.

Server

SBA-server exponerar ett web GUI där man enkelt kan navigera och titta på olika tjänsters status och information:

Det finns en server för test och en för produktion:

Genom att navigera in sig på en specifik instans, hämtar man specifik information för just den tjänsten och där åter finns allt som är exponerat via /actuator.

Client

För att en tjänst ska registreras behöver den bli SBA-client.

Dependencies

Detta dependency möjliggör registrering:

<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> <version>2.6.7</version> </dependency

Detta dependency är inkluderat i dept 44-starter. Genom att använda en version >= 1.7 så får man detta dependency på köpet.

Config

Tjänsten behöver veta vilken SBA-server den ska registrera sig på och även management/service url (om tjänsten körs i en container), exempel:

spring.boot.admin.client.url=https://microservices.sundsvall.se/spring-boot-admin/ spring.boot.admin.client.instance.management-base-url=https://microservices.sundsvall.se/party/ spring.boot.admin.client.instance.service-base-url=https://microservices.sundsvall.se/party/

Dessa properties ska sättas i repot config/properties. Notera url blir olika för test och produktion. Detta exempel är för produktion.

Proxy

För att root-relativa länkar ska bli korrekta för SBA-server är det viktigt att x-forwarded headers sätts korrekt i proxyn.

När man sätter upp en ny tjänst behöver man alltså se till att dessa headers sätts korrekt av proxy servern:

  • x-forwarded-for

  • x-forwarded-host

  • x-forwarded-port

  • x-fordwarded-proto

  • x-forwarded-server

  • x-forwarded-prefix

I nuvarande proxy lösning sätts samtliga headers i alla anrop utom x-forwarded-prefix. Detta måste beställas särskilt och ska motsvara den del av URL: som inte utgörs av host. Exempel:

https://microservices-test.sundsvall.se/party/

Här ska x-forwarded-prefix sättas till /party.