- 深入理解Spring Cloud与微服务构建(第2版)
- 方志朋
- 563字
- 2020-08-27 11:22:39
4.4 运行状态监控Actuator
Spring Boot的Actuator提供了运行状态监控的功能,Actuator的监控数据可以通过REST、远程shell(1.5之后的版本弃用)和JMX方式获得。我们首先来介绍通过REST方式查看Actuator的节点的方法,这是最常见且简单的方法。
在工程的pom文件中引入Actuator的起步依赖spring-boot-starter-actuator,代码清单如下:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
在配置文件application.yml中配置management.port和management.security.enabled,这两个配置分别配置了Actuator对外暴露REST API接口的端口号和Actuator采取非安全验证方式,其代码清单如下:
management: endpoints: web: exposure: include: "*" endpoint: health: show-details: ALWAYS shutdown: enabled: true server: port: 9001
在上述的配置代码中指定了Actuator对外暴露REST API接口的端口为9091,如果不指定,端口为应用程序的启动端口,这样做的目的是将程序端口和程序的监控端口分开。将配置managemet.endpoints.web.exposure.include设置为“*”,暴露Actuator组件的所有节点;将配置management..endpoint.shutdown.enabled设置为“true”,开启可以通过请求来关闭程序的功能。启动工程,在控制台可以看到如下信息:
Exposing 16 endpoint(s) beneath base path '/actuator' Tomcat started on port(s): 9001 (http) with context path '' Tomcat started on port(s): 8082 (http) with context path '' ...
由以上的信息可知,Spring Boot的Actutor开启了16个节点,并且Actutor的监控端口为9001,应用程序的启动端口为8082。
Spring Boot Actuator的关键特性是在应用程序里提供众多的Web节点,通过这些节点可以实时地了解应用程序的运行状况。有了Actuator,你可以知道Bean在Spring应用程序上下文里是如何组装在一起的,并且可以获取环境属性的信息和运行时度量信息等。
Actuator提供了13个API接口,用于监控运行状态的Spring Boot的状况,具体如表4-1所示。需要注意的是,API接口需要加上“/actuator”前缀才能访问。
表4-1 Actuator端口信息