本系列的所有源码可以从github获取
SpringBoot Actuator
概念
SpringBoot Actuator 是包含一系列端点,这些端点可以实现对服务的监控,暴露出服务的实时状态。在微服务的架构中,可以帮助我们对系统有整体的把控。
快速入门
在pom.xml中引入 spring-boot-starter-actuator 依赖即可开启 actuator 监控,这里用到的代码是在 springboot(一)_快速上手springboot中搭建好的。
1 | <dependency> |
启动项目,在浏览器访问 http://localhost:8099/health ,我们可以看到返回了服务的当前状态。
1 | {"status":"UP"} |
Actuator 的一系列端点可以在官方网站查询,当然,有很多端点是默认敏感的,也就是没有通过安全校验无法访问,比如 /metrics 端点,访问回返回 404 错误。如果想要访问这些端点,可以配置 application.properties 。
1 | endpoints.sensitive=false |
Spring Boot 2.x 的配置稍有更改,可以参考官网。另外,shutdown 端点默认是不可用的,如果想要开启 shutdown 功能需要配置,并且shutdown是post请求。
1 | endpoints.shutdown.enabled=true |
端点提供了非常全面的监控,但是这样每次去请求接口非常麻烦,返回的json信息也不够直观。所以,需要使用Spring Boot Admin。
Spring Boot Admin
概念
Spring Boot Admin 是管理和监控 Spring Boot 应用的开源软件,它对 SpringBoot Actuator 进行了封装,可以在列表中浏览被监控的 Spring Boot 的信息。
admin-server
首先搭建一个 admin-server ,在项目的pom文件中添加
1 | <dependency> |
spring-boot-admin-starter-server 已经包含了 ui 的依赖,不用另外引入,在启动类加上 @EnableAdminServer 注解
1 |
|
启动程序,访问 localhost:8080 ,可以看到我们的server端已经搭建好了
admin-client
将 SpringBoot Actuator 用到的代码作为 client ,注释掉 actuator的依赖,引入 spring-boot-admin-starter-client 依赖
1 | <dependency> |
配置文件
1 | spring.boot.admin.url=http://localhost:8080 |
重启项目,刷新 localhost:8080,client 端已经注册上来了
点击 details 能够看到详细的监控信息