# SpringBoot 监控
<span alt='solid'> 概述 </span>:
SpringBoot 自带监控功能 Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况,Bean 加载情况,配置属性,日志信息等。
使用步骤:
导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
或者在创建 SpringBoot 的时候进行勾选该依赖
访问:http://localhost:8080/acruator
访问路径后返回了一些 json 字符串,我们去找一个网站解析一下
json 字符串解析后的格式
访问路径 http://localhost:8080/actuator/health
表示当前应用正常 DOWN 就是失败了有问题了,默认没有开启完整信息的,因为不是很安全
在 application.yml 配置文件中开启完整信息
# 开启健康检查的完整信息 | |
management: | |
endpoint: | |
health: | |
show-details: always |
访问结果:
导入 redis 的坐标
<dependency> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-starter-data-redis</artifactId> | |
</dependency> |
然后 redis 本机没有启动,它默认会链接本机的 redis 但是没有启动就会报错。我们查看 SpringBoot 监控的情况中 redis 是处于什么状态
其它的配置
# 将所有的监控 endpoint 暴漏出来 可以理解为:一个 endpoints 就是一个 url | |
management: | |
endpoints: | |
web: | |
exposure: | |
include: "*" #这里需要注意 * 号需要加上双引号包裹起来,否则启动报错 |
访问结果:
# SpringBootAdmin
SpringBootAdmin 是一个开源社区项目,用于管理和监控 SpringBoot 应用程序。
SpringBootAdmin 有两个角色,客户端 (Client) 和服务端 (Server)。
应用程序作为 SpringBootAdminClient 向为 SpringBootAdminServer 注册
SpringBootAdminServer 的 UI 界面将 SpringBootAdminClient 的 ActuatorEndpoint 上的一些监控信息
这个东西的使用有两端,所以我们要创建两端
创建 admin-server 模块
server 依赖包含了 actuator 所以不用选择了
因为本机的端口号默认是 8080,需要将两端的端口号分别开来否则就会出问题:
server 的 yml 配置文件
server: | |
port: 8081 |
client 的 yml 配置文件
# 执行 admin-server 地址 | |
spring: | |
boot: | |
admin: | |
client: | |
url: "http://localhost:8081" | |
management: | |
endpoint: | |
health: | |
show-details: always # 健康检查的完整信息 | |
endpoints: | |
web: | |
exposure: | |
include: "*" # 开启所有配置 |
启动 server 的启动类
然后再启动 client 的启动类
启动之后我们直接访问 server 就可以看到 client 中的所有信息了。
点击应用墙就可以看到启动的时间
点击后就可以看到里面的详细信息
里面有健康信息和其它的一些信息
在 client 模块中添加一个 UserController 控制类
@RestController | |
public class UserController { | |
@GetMapping("/str") | |
public String getStr() { | |
return "Hello,World"; | |
} | |
} |
重启代码