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
.