1. 创建 Spring Boot Admin Server 项目
1.1 添加依赖
在 pom.xml
中添加 Spring Boot Admin Server 和邮件相关依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Boot Admin Server -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.1.6</version>
</dependency>
<!-- Spring Boot Starter Mail -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
</dependencies>
这里选用 Spring Boot Admin 2.1.6 版本,与 Spring Boot 2.1.3.RELEASE 相对兼容,同时引入邮件启动器用于邮件报警。
1.2 启用 Admin Server
在主应用类添加 @EnableAdminServer
注解:
java">import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableAdminServer
public class AdminServerEmailApplication {
public static void main(String[] args) {
SpringApplication.run(AdminServerEmailApplication.class, args);
}
}
2. 配置邮件报警
2.1 配置邮件服务
在 application.properties
中配置邮件服务器信息:
server.port=8080
# QQ 邮箱 SMTP 服务器地址
spring.mail.host=smtp.qq.com
# QQ 邮箱 SMTP 服务器端口,开启 SSL 时使用 465 或 587
spring.mail.port=587
# 发件人 QQ 邮箱地址
spring.mail.username=your_qq_email@qq.com
# 发件人 QQ 邮箱授权码
spring.mail.password=your_qq_email_authorization_code
# 邮件协议
spring.mail.protocol=smtp
# 开启 STARTTLS 支持
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
# 开启 SMTP 认证
spring.mail.properties.mail.smtp.auth=true
若使用其他邮件服务提供商,需相应修改 host
、port
等信息。
2.2 配置 Spring Boot Admin 邮件报警
继续在 application.properties
中添加 Spring Boot Admin 邮件报警配置:
# 启用邮件通知
spring.boot.admin.notify.mail.enabled=true
# 收件人邮箱地址,可以是多个,用逗号分隔
spring.boot.admin.notify.mail.to=recipient_email@example.com
# 发件人邮箱地址,与上面配置的 username 一致
spring.boot.admin.notify.mail.from=your_qq_email@qq.com
3. 将被监控的 Spring Boot 应用注册到 Admin Server
3.1 添加依赖
在被监控的 Spring Boot 应用的 pom.xml
中添加 Spring Boot Admin Client 依赖:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.1.6</version>
</dependency>
3.2 配置客户端
在被监控应用的 application.properties
中添加以下配置:
server.port=8081
# Admin Server 的地址
spring.boot.admin.client.url=http://localhost:8080
# 暴露所有 Actuator 端点
management.endpoints.web.exposure.include=*
4. 启动应用并验证
4.1 启动 Spring Boot Admin Server
运行 AdminServerEmailApplication
类启动 Spring Boot Admin Server。
4.2 启动被监控的 Spring Boot 应用
启动被监控的应用,它会自动注册到 Spring Boot Admin Server。
4.3 验证邮件报警
当被监控应用的状态发生变化(如上线、下线)时,Spring Boot Admin Server 会根据配置发送邮件到指定的收件人邮箱,你可以通过停止和启动被监控应用来验证邮件报警功能是否正常工作。
注意事项
- 邮件服务安全:使用 Gmail 等邮箱服务时,可能需要开启“允许不太安全的应用访问”或使用应用专用密码,以确保能正常发送邮件。
- 版本兼容性:确保 Spring Boot、Spring Boot Admin 及其他依赖库的版本相互兼容,避免出现版本冲突问题。