📅  最后修改于: 2023-12-03 14:49:51.620000             🧑  作者: Mango
Spring Boot Actuator是Spring Boot框架中的一个功能强大的子项目,可以通过HTTP、JMX、SSH等方式来监控和管理Spring Boot应用程序。其中,HTTP API是常用的一种方式,可以方便地在生产环境中对应用程序进行远程监控和管理。
在pom.xml文件中添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
然后在application.properties或application.yml文件中添加以下配置:
management.endpoints.web.exposure.include=*
这样就可以开启所有的Actuator Endpoint,可以通过"/actuator"来访问Actuator。同时我们也可以通过配置指定需要暴露的Endpoint,例如:
management.endpoints.web.exposure.include=health,info,mappings
以上配置将仅暴露health、info、mappings三个Endpoint。
Spring Boot Actuator提供了很多Endpoint,用于监控应用程序的状态和行为。以下是常用的Endpoint:
/actuator/health
:应用程序的健康状态,包括数据库、磁盘空间、内存等的健康状态。/actuator/info
:应用程序的基本信息,例如版本号、运行环境等。/actuator/metrics
:应用程序的度量指标,例如请求数、错误率、性能指标等。/actuator/mappings
:应用程序中所有的URL映射情况。/actuator/env
:应用程序环境变量的信息。/actuator/configprops
:应用程序中所有的配置属性情况。/actuator/beans
:应用程序中所有的Bean信息。通过HTTP GET请求访问指定的Endpoint,可以获取到相关信息。例如:
/actuator/health
即可获取健康状态信息,如下所示:{
"status": "UP",
"details": {
"diskSpace": {
"status": "UP",
"details": {
"total": 499963170816,
"free": 32002162048,
"threshold": 10485760
}
},
"db": {
"status": "UP",
"details": {
"database": "MySQL",
"hello": 1
}
}
}
}
/actuator/info
即可获取应用程序的基本信息,如下所示:{
"app": {
"name": "myapp",
"description": "My Spring Boot Application",
"version": "1.0.0",
"timezone": "Asia/Shanghai"
},
"java": {
"version": "1.8.0_202",
"vendor": "Oracle Corporation",
"vmVersion": "25.202-b08",
"vmName": "Java HotSpot(TM) 64-Bit Server VM",
"vmMaxMemory": "64M",
"compiler": "jit"
},
"os": {
"name": "Windows 10",
"version": "10.0",
"architecture": "amd64",
"processors": 8
},
"user": {
"name": "admin",
"timezone": "Asia/Shanghai"
}
}
Actuator Endpoint是开放给外部应用程序访问的,因此需要增强安全性,防止非法访问。可以通过Spring Security、访问IP限制等方式来增强安全性。
为了增加安全性,我们可以通过以下方式配置:
management.endpoints.web.exposure.include=health,info,mappings
management.endpoint.health.show-details=when-authorized
management.endpoint.info.sensitive=false
spring.security.user.name=admin
spring.security.user.password=password
以上配置将仅暴露health、info、mappings三个Endpoint,并要求认证后才能查看更多健康信息。同时,禁用了应用程序的基本信息中的敏感信息。最后,使用Spring Security提供的基本认证方式,确定了用户名和密码。
Spring Boot Actuator是一个强大的监控和管理工具,在生产环境中非常实用。通过此文的介绍,我们可以更加清晰地了解Actuator的使用方法和常用Endpoint,同时也要注意增强安全性,避免不必要的风险。