在生产环境中,需要实时或定期监控服务的可用性,spring-Boot的Actuator 功能提供了很多监控所需的接口。
Actuator是Spring Boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、健康检查、相关功能统计等,一般运维人员使用多些,开发了解即可。
使用该功能步骤
我们这里监控03-springboot-web程序
项目名称:038-springboot-actuator
1.在项目pom.xml中添加SSM需要的依赖
<!--MyBatis集成SpringBoot框架的起步依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!--连接MySQL的驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 加载spring boot redis包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--SpringBoot项目内嵌tomcat对jsp的解析包-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
2.在pom文件中添加Actuator需要的依赖
<!--Spring Boot Actuator依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
3.编写集成SSM在application.properties的配置
#设置内嵌Tomcat端口号
server.port=9090
#设置项目上下文根
server.servlet.context-path=/038-springboot-actuator
#配置jsp的前/后缀
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
#配置连接MySQL数据库信息
spring.datasource.url=jdbc:mysql://192.168.92.134:3306/springboot?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456
#配置redis连接信息(单机模式)
spring.redis.host=192.168.92.134
spring.redis.port=6379
spring.redis.password=123456
4.在application.properties或application.yml配置文件中指定监控的HTTP端口及路径
我这里没有进行配置
o #服务运行的端口
server.port=8080
server.servlet.context-path=/038-springboot-actuator
o #actuator监控的端口(端口可配可不配,如果不配置,则使用和server.port相同的端口)
management.server.port=8100
o #actuator监控的访问上下文根路径(路径可配可不配,如果不配置,则使用和server.context-path相同的路径)
management.server.servlet.context-path=/038-springboot-actuator
5.在application.properties或application.yml配置文件中设置开启所有的端口
#默认只开启了health和info,设置为*,则包含所有的web入口端点
management.endpoints.web.exposure.include=*
6.启动MySQL
7.启动Redis
8.启动038-springboot-actuator
① 浏览器访问http://localhost:9090/actuator/health
② 浏览器访问http://localhost:9090/actuator/info
默认没有内容
需要自己在application.properties配置文件中添加信息,需要以info开头,后面的内容可以自己设定,一般配置项目的版权等信息,例如
#配置项目版权相关信息
info.contact.email=sxbdqn@163.com
info.contact.phone=010-84846003
配置完毕后,重启项目再进行访问
Actuator提供的主要功能
HTTP方法 |
路径 |
描述 |
---|---|---|
GET |
/configprops |
查看配置属性,包括默认配置 |
GET |
/beans |
查看Spring容器目前初始化的bean及其关系列表 |
GET |
/env |
查看所有环境变量 |
GET |
/mappings |
查看所有url映射 |
GET |
/health |
查看应用健康指标 |
GET |
/info |
查看应用信息 |
GET |
/metrics |
查看应用基本指标 |
GET |
/metrics/{name} |
查看具体指标 |
JMX |
/shutdown |
关闭应用 |
shutdown的使用
注意:/shutdown不能直接在浏览器中访问
o 先在pom.xml文件中配置
# 启用关闭springboot的服务
# 关闭SpringBoot服务是否可用,true让其关闭服务可用,默认为不可用
management.endpoint.shutdown.enabled=true
o 双击打开jconsole
o 选择Spring Boot进程,进行连接管理
o 点击shutdown,可关闭Spring Boot服务