36. Spring Boot 2.1.3.RELEASE 中实现监控信息可视化并添加邮件报警功能

1. 创建 Spring Boot Admin Server 项目

1.1 添加依赖

pom.xml 中添加 Spring Boot Admin Server 和邮件相关依赖:

xml 复制代码
<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 中配置邮件服务器信息:

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

若使用其他邮件服务提供商,需相应修改 hostport 等信息。

2.2 配置 Spring Boot Admin 邮件报警

继续在 application.properties 中添加 Spring Boot Admin 邮件报警配置:

properties 复制代码
# 启用邮件通知
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 依赖:

xml 复制代码
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.1.6</version>
</dependency>
3.2 配置客户端

在被监控应用的 application.properties 中添加以下配置:

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 及其他依赖库的版本相互兼容,避免出现版本冲突问题。
相关推荐
BUG指挥官15 分钟前
Redis已接入AI
数据库·人工智能·spring boot·redis·spring cloud
mldong2 小时前
Go 开发者也有自己的轻量工作流引擎了:go get 一行,5 分钟跑通一条审批流
后端·go
starzy19902 小时前
Flink基础之Per-Job-Cluster原理详解:被 Application 取代的模式
java·大数据·flink
BingoGo8 小时前
PHP clone 之后,为什么改副本会影响原对象?
后端·php
JaguarJack8 小时前
PHP clone 之后,为什么改副本会影响原对象?
后端·php·服务端
小灰灰搞电子9 小时前
Rust+Slint 实现动态消息提示框源码分享
开发语言·后端·rust
魏 无羡9 小时前
webclient
java·webclient
小奏技术9 小时前
10 MB 的 Postman 替代品,启动不到 1 秒
后端
东风破_9 小时前
Text2SQL :用自然语言操作 SQLite 数据库
人工智能·后端
神仙别闹9 小时前
基于 C++ 实现两个有序链表序列的交集
java·c++·链表