文章目录
前言
本文仅仅是针对怎么搭建Spring Boot Admin的client端和server端。怎么配置实现服务client服务向server注册。使用security认证的server,由于暂时对security的不了解,所以使用的是百度的security配置,仅供参考。
我再这里将server端和client端独立部署,若想部署在同一个项目,也是可以的。如果你将单独部署弄懂后,合并成一个项目也是很简单的啦。
一、Spring Boot Admin 的作用是什么?
利用spring-boot-admin对SpringBoot应用程序信息进行可视化管理和监控。 应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册服务(通过HTTP)或使用SpringCloud注册中心(例如Eureka,Consul)发现服务。
Spring Boot Admin提供了如下功能:
- 显示健康状态及详细信息,如JVM和内存指标、数据源指标、缓存指标
- 跟踪并下载日志文件
- 查看jvm系统-和环境属性
- 查看Spring启动配置属性
- 方便loglevel管理
- 查看线程转储
- 视图http-traces
- 查看http端点
- 查看计划任务
- 查看和删除活动会话(使用spring-session)
- 状态更改通知(通过电子邮件、Slack、Hipchat…)
- 状态变化的事件日志(非持久性)
…
下面的项目都使用2.2.1版本,因为Spring Boot Admin 2.2.1版本支持中文。为了版本统一,我这里spring boot也是使用2.2.1版本
二、搭建client端
client是指我们需要监控的任务,所以这部分配置比较简单,不会对我们原有的业务代码有改变。我们只需要添加依赖和配置就好。
spring-boot-admin 的监控实际上还是使用的是actuator。所以我们还是需要配置actuator。
1.引入依赖
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.2.1</version>
</dependency>
2.添加配置
#端口号
server.port=8888
#项目名,如果不设定,默认是 / ,在访问的时候需要拼接
server.servlet.context-path=/study
#actuator配置
#这里用*代表暴露所有端点只是为了观察效果,实际中按照需进行端点暴露
management.endpoints.web.exposure.include=*
#详细信息显示给所有用户。
management.endpoint.health.show-details=always
#额外信息配置
info.app.name="@project.name@"
info.app.description="@project.description@"
info.app.version="@project.version@"
info.app.spring-boot-version="@project.parent.version@"
#客户端工程的名字,这个名字会注册到服务端展示
spring.application.name=Spring Boot Client My Name
#是否启用springbootAdmin客户端,默认为true
spring.boot.admin.client.enabled=true
# 要注册的server端的url地址。如果要同时在多个server端口注册,则用逗号分隔各个server端的url地址;
spring.boot.admin.client.url=http://127.0.0.1:8889/study/server/
# 注册到service的url值,当server端与client端不在同一台服务器上的时候,要配置该属性的值。如果不配置的话,server端就会根据默认的命名规则来配置该值
spring.boot.admin.client.instance.service-url=http://127.0.0.1:8888/study/
# 如果server端需要进行认证时,该属性用于配置用户名。如果使用security认证的客户端,这个用户名称和密码必须要和server端security的一致,否则服务不能被server认证发现
spring.boot.admin.client.username=admin
# 如果server端需要进行认证时,该属性用于配置密码。如果使用security认证的客户端,这个用户名称和密码必须要和server端security的一致,否则服务不能被server认证发现
spring.boot.admin.client.password= 123456
三、搭建server端
1.引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Admin Server 端, 2.2.0以后支持中文界面-->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.2.1</version>
</dependency>
2.添加配置
需要注意的点:
1、若配置了spring.boot.admin.context-path=server,那么访问的时候就需要在url后面带上。
2、在启动client和server端后。client端会根据配置的spring.boot.admin.client.url=http://127.0.0.1:8889/study/server/
向服务端自动注册。如果你的client和server不在一台服务器上,就必须要在client端正确配置这地址。
# 端口号
server.port=8889
# 项目名,如果不设定,默认是 / ,在访问的时候需要拼接
server.servlet.context-path=/study
# server端的访问路径,默认是/。配置之后访问就需要变成:http://127.0.0.1:8889/study/server/
spring.boot.admin.context-path=server
# 更新client端状态的时间间隔,单位是毫秒,默认值是10秒钟
spring.boot.admin.monitor.period=10
# client端状态的生命周期,该生命周期内不会更新client状态。单位是毫秒,默认值是10秒钟
spring.boot.admin.monitor.status-lifetime=10