随着我们服务越来越多,部署的环境也越来越繁多时,由于各服务都部署在不同的机器上,每当出现问题或者异常时,想快速进行问题的定位就变的麻烦了。所以,本章节开始,开始讲解SpringBoot的监控相关知识点。本章节就先来说一说,其自带的Actuator功能。
一点知识
Spring Boot Actuator是spring boot项目一个监控模块,提供了很多原生的端点,包含了对应用系统的自省和监控的集成功能,可以查看应用配置的详细信息,比如应用程序上下文里全部的Bean、健康指标、环境变量及各类重要度量指标等等,这些都是使用可HTTP进行请求访问。通过这些监控信息,我们就能随时了解应用的运行情况了。
Actuator实践特别说明:
最近在编写SpringCloud的教程,使用的是SpringBoot2.x的版本,其和1.x版本是有区别的,需要额外开启端点,默认只开启了info、health两个端点,其他的需要额外去配置的。本教程还是沿用Spring Boot 1.5.15版本来示例。关于2.x的后续再来更新吧,不然会乱了。。
原生端点是在应用程序里提供众多 Web 接口,通过它们了解应用程序运行时的内部状况。原生端点又可以分成三类:
应用配置类:可以查看应用在运行期的静态信息:例如自动配置信息、加载的springbean信息、yml文件配置信息、环境信息、请求映射信息;
度量指标类:主要是运行期的动态信息,例如堆栈、请求连、一些健康指标、metrics信息等;
操作控制类:主要是指shutdown,用户可以发送一个请求将应用的监控功能关闭。
官网可以看出,原生的端点很多
以下列举内置的端点相关说明:
ID 描述 是否需要鉴权actuator 为其他端点提供“发现页面”。要求Spring HATEOAS在classpath路径上。 需要
auditevents 陈列当前应用程序的审计事件信息。 需要
autoconfig 展示自动配置信息并且显示所有自动配置候选人以及他们“被不被”应用的原因。 需要
beans 显示应用程序中所有Spring bean的完整列表。 需要
configprops 显示所有配置信息。 需要
dump dump所有线程。 需要
env 陈列所有的环境变量。 需要
flyway Shows any Flyway database migrations that have been applied. 需要
health 显示应用程序运行状况信息 不需要
info 显示应用信息。 不需要
loggers 显示和修改应用程序中的loggers配置。 需要
liquibase 显示已经应用的任何Liquibase数据库迁移。 需要
metrics 显示当前应用程序的“指标”信息。 需要
mappings 显示所有@RequestMapping的url整理列表。 需要
shutdown 关闭应用(默认情况下不启用)。 需要
trace 显示跟踪信息(默认最后100个HTTP请求)。 需要
从官网文档也可以看出,可通过配置文件,修改某端点是否开启,是否需要鉴权访问等
如:
# 这里的id 是指访问的url路径 endpoints.beans.id=springbeans # 关闭鉴权 endpoints.beans.sensitive=false # 开启shutdown endpoints.shutdown.enabled=true至于以上每个端点实际输出的信息,大家可以看看大佬们的文章或者访问/docs端点里面也有的,常用的命令输出都有示例,这里就不贴了。不然文章看起来就冗长了,哈哈~
命令详解:
访问/docs端点(如何使用下文有说明):
上手实践