服务状态管理与监控
Spring Boot Actuator
简述
- 提供了对SpringBoot应用程序(可以是生产环境)监视和管理的能力
- 可以选择通过使用HTTP Endpoint或使用JMX来管理和监控SpringBoot应用程序
- Spring Boot Actuator 允许你通过Endpoints对Spring Boot应用进行监控和交互
Endpoint
模式
- WEB。web方式考虑到安全性默认只开启了/health
- JMX
跨域访问配置
自定义端点(Endpoint)
- 可以通过@JmxEndpoint或者@WebEndpoint注解来定义自己的endpoint,
- 然后通过@ReadOperation, @WriteOperation或者@DeleteOperation来设置操作
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Metrics数据接入监控系统
- 例如:Prometheus
SpringBoot Admin
简述
- SpringBoot提供了Actuator对应用进行监控和管理,
- 而Spring Boot Admin能够将 Actuator 中的信息进行界面化的展示,
- 也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能
相关模块
服务端(Server)
依赖
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
相关注解
- @EnableAdminServer
- 启用SpringBoot Admin Server
客户端(Client)
依赖
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
配置
- 配置SpringBoot Admin Server地址
- 配置需要监控的Actuator端点
启用JMX管理
-
默认是关闭的
-
依赖
<dependency> <groupId>org.jolokia</groupId> <artifactId>jolokia-core</artifactId> </dependency> -
配置
spring.jmx.enabled: true
显示应用日志
-
配置
logging.file.name: 'spring-boot-application.log' logging.pattern.file: 'xxxxxxxxx'
设置通知与告警
-
依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> -
配置
spring.mail.host=smtp.mail.com spring.boot.admin.notify.mail.to=admin@mail.com