共计 782 个字符,预计需要花费 2 分钟才能阅读完成。
在生产环境中,需要对应用程序的状态进行监控。前面我们已经介绍了使用 JMX 对 Java 应用程序包括 JVM 进行监控,使用 JMX 需要把一些监控信息以 MBean 的形式暴露给 JMX Server,而 Spring Boot 已经内置了一个监控功能,它叫 Actuator。
使用 Actuator 非常简单,只需添加如下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
然后正常启动应用程序,Actuator 会把它能收集到的所有信息都暴露给 JMX。此外,Actuator 还可以通过 URL/actuator/
挂载一些监控点,例如,输入http://localhost:8080/actuator/health
,我们可以查看应用程序当前状态:
{
"status": "UP"
}
许多网关作为反向代理需要一个 URL 来探测后端集群应用是否存活,这个 URL 就可以提供给网关使用。
Actuator 默认把所有访问点暴露给 JMX,但处于安全原因,只有 health
和info
会暴露给 Web。Actuator 提供的所有访问点均在官方文档列出,要暴露更多的访问点给 Web,需要在 application.yml
中加上配置:
management:
endpoints:
web:
exposure:
include: info, health, beans, env, metrics
要特别注意暴露的 URL 的安全性,例如,/actuator/env
可以获取当前机器的所有环境变量,不可暴露给公网。
练习
使用 Actuator 实现监控。
下载练习
小结
Spring Boot 提供了一个 Actuator,可以方便地实现监控,并可通过 Web 访问特定类型的监控。
正文完
星哥玩云-微信公众号