Spring Boot Admin 是一个管理和监控 Spring Boot 应用程序的开源软件, 每个应用都认为是一个客户端, 通过 HTTP 或者使用 Eureka 注册到 admin server 中进行展示, Spring Boot Admin UI 部分使用 vue.js 将数据展示在前端.
Spring Boot Admin 分为:
服务端是一个监控后台用来汇总展示所有的监控信息
客户端就是具体的应用
1.server 和 client 的模式
(1)server 端
添加依赖
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>de.codecentric</groupId>
- <artifactId>spring-boot-admin-starter-server</artifactId>
- <version>2.1.6</version>
- </dependency>
配置
- server.port=8000
- spring.application.name=Admin Server
启动类
- package com.example.management;
- import de.codecentric.boot.admin.server.config.EnableAdminServer;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- @SpringBootApplication
- @EnableAdminServer
- public class ManagementApplication {
- public static void main(String[] args) {
- SpringApplication.run(ManagementApplication.class, args);
- }
- }
(2)client 端
添加依赖
- <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>
- <version>2.1.6</version>
- </dependency>
配置
- server.port=8001
- spring.application.name=Admin Client
- spring.boot.admin.client.url=http://localhost:8000
- management.endpoints.Web.exposure.include=*
- management.endpoint.health.show-details=always
启动类
- package com.example.client;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- @SpringBootApplication
- public class ClientApplication {
- public static void main(String[] args) {
- SpringApplication.run(ClientApplication.class, args);
- }
- }
注:
使用时需要先启动服务端, 在启动客户端的时候打开 Actuator 的接口, 并指向服务端的地址
2. 基于 springcloud 的模式
(1)server
在 server 端加入 @EnableDiscoveryClient 注解, SBA 就会主动去拉取注册中心的注册服务列表, 从而获取他们的服务动态信息
注册中心使用 Eureka
添加依赖
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
- <version>2.1.3.RELEASE</version>
- </dependency>
配置
- server.port=8000
- spring.application.name=Admin Server
- eureka.instance.hostname=localhost
- eureka.instance.lease-renewal-interval-in-seconds=10
- eureka.instance.prefer-ip-address=true
- eureka.client.registry-fetch-interval-seconds=5
- eureka.client.register-with-eureka=false
- eureka.client.fetch-registry=false
- eureka.client.service-url.default-zone=${
- EUREKA_SERVICE_URL:http://localhost:8761
- }/eureka/
启动类
- package com.example.management;
- import de.codecentric.boot.admin.server.config.EnableAdminServer;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
- @SpringBootApplication
- @EnableAdminServer
- @EnableDiscoveryClient
- public class ManagementApplication {
- public static void main(String[] args) {
- SpringApplication.run(ManagementApplication.class, args);
- }
- }
启动服务就可以看到注册到注册中心的服务都会被监控
来源: http://www.bubuko.com/infodetail-3211803.html