概述
Spring Boot 有一个非常好用的监控和管理的源软件,这个软件就是 Spring Boot Admin。该软件能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。
主要的功能点有:
- 显示应用程序的监控状态
- 应用程序上下线监控
- 查看 JVM,线程信息
- 可视化的查看日志以及下载日志文件
- 动态切换日志级别
- Http 请求信息跟踪
- 其他功能点……
可点击https://github.com/codecentric/spring-boot-admin更多了解 Spring-boot-admin。
搭建服务流程说明
- admin-server admin 监控服务
- admin-order amdin 客户端服务
创建Spring Boot Admin项目
**版本说明:**版本建议:SpringBoot2.x=SpringBootAdmin2.x(比如SpringBoot2.3.x可以用SpringBootAdmin2.3.x)
创建一个 Spring Boot 项目,用于展示各个服务中的监控信息,加上 Spring Boot Admin 的依赖,具体代码如下所示
pom 依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.6.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
<spring.cloud.alibaba.version>2.2.5.RELEASE</spring.cloud.alibaba.version>
<spring.boot.version>2.3.6.RELEASE</spring.boot.version>
<spring.cloud.version>Hoxton.SR8</spring.cloud.version>
<admin.starter.server.version>2.3.1</admin.starter.server.version>
</properties>
<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>${admin.starter.server.version}</version>
</dependency>
启动类
添加 @EnableAdminServer
@EnableAdminServer
@SpringBootApplication
public class AdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(AdminServerApplication.class,args);
}
}
yml 配置
在属性文件中增加端口配置信息:
server:
port: 8000
spring:
application:
## 注册服务名
name: admin-order
management:
endpoint:
health:
show-details: always
启动程序,访问 Web 地址 http://127.0.0.1:8000/ 就可以看到主页面了,这个时候是没有数据的,如图 1 所示
客户端服务
流程
创建 amdin-order 服务,将服务注册到 admin-server 中
pom 依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.6.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
<spring.cloud.alibaba.version>2.2.5.RELEASE</spring.cloud.alibaba.version>
<spring.boot.version>2.3.6.RELEASE</spring.boot.version>
<spring.cloud.version>Hoxton.SR8</spring.cloud.version>
<spring.boot.admin.client.version>2.3.1</spring.boot.admin.client.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.14</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>${spring.boot.admin.client.version}</version>
</dependency>
</dependencies>
yml 配置
spring:
application:
## 注册服务名
name: admin-order
## spring boot admin
boot:
admin:
client:
api-path:
url: http://127.0.0.1:8000
instance:
prefer-ip: true #?使用ip注册进来
server:
port: 8100
# ?endpoints config
management:
endpoint:
health:
show-details: always
endpoints:
enabled-by-default: true
web:
base-path: /actuator
exposure:
include: '*'