当前位置: 首页 > news >正文

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

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 注解:

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

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

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 及其他依赖库的版本相互兼容,避免出现版本冲突问题。

相关文章:

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

1. 创建 Spring Boot Admin Server 项目 1.1 添加依赖 在 pom.xml 中添加 Spring Boot Admin Server 和邮件相关依赖&#xff1a; <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-w…...

Linux: 已占用接口

Linux: 已占用接口 1. netstat&#xff08;适用于旧系统&#xff09;1.1 书中对该命令的介绍 2. ss&#xff08;适用于新系统&#xff0c;替代 netstat&#xff09;3. lsof&#xff08;查看详细进程信息&#xff09;4. fuser&#xff08;快速查找占用端口的进程&#xff09;5. …...

Vscode的通义灵码占用空间过大问题【.lingma】

C盘空间发现没装几个软件但是空间占用太离谱了&#xff0c; 最后排查发现是一个.lingma的文件夹问题&#xff0c;这个文件夹用了我居然差不多一百G的空间&#xff0c; 点进去。删除掉ai训练时产生的dbc文件就好了&#xff0c; windowsI 打开系统设置&#xff0c;搜索存储&#…...

鸿蒙Next如何自定义标签页

前言 项目需求是展示标签&#xff0c;标签的个数不定&#xff0c;一行展示不行就自行换行。但是&#xff0c;使用鸿蒙原生的 Grid 后发现特别的难看。然后就想着自定义控件。找了官方文档&#xff0c;发现2个重要的实现方法&#xff0c;但是&#xff0c;官方的demo中讲的很少&…...

知识拓展:Python 接口实现方式对比:Protocol vs @implementer

Python 接口实现方式对比&#xff1a;Protocol vs implementer 1. 两种接口实现方式 1.1 Python Protocol&#xff08;结构化子类型&#xff09; from typing import Protocolclass DownloadHandlerProtocol(Protocol):def download_request(self, request: Request, spider:…...

开源程序wordpress在海外品牌推广中的重要作用

WordPress作为全球最流行的开源内容管理系统(CMS)&#xff0c;在全球网站搭建中占据超过40%的市场份额。其强大的功能、灵活性和易用性使其成为企业进行海外品牌推广的首选平台。以下是WordPress在海外品牌推广中的重要性分析&#xff1a; 1. 多语言支持与本地化 WordPress通…...

【Python爬虫(89)】爬虫“反水”:助力数字版权保护的逆向之旅

【Python爬虫】专栏简介&#xff1a;本专栏是 Python 爬虫领域的集大成之作&#xff0c;共 100 章节。从 Python 基础语法、爬虫入门知识讲起&#xff0c;深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑&#xff0c;覆盖网页、图片、音频等各类数据爬取&#xff…...

k8s面试题总结(五)

1.考虑一种情况&#xff0c;即公司希望通过维持最低成本来提高其效率和技术运营速度。您认为公司将如何实现这一目标&#xff1f; 公司可以通过构建 CI/CD 管道来实现 DevOps 方法&#xff0c;但是这里可能出现的一个问题是配置可能需要一段时间才能启动并运行。 因此&#x…...

文章精读篇——用于遥感小样本语义分割的可学习Prompt

题目&#xff1a;Learnable Prompt for Few-Shot Semantic Segmentation in Remote Sensing Domain 会议&#xff1a;CVPR 2024 Workshop 论文&#xff1a;10.48550/arXiv.2404.10307 相关竞赛&#xff1a;https://codalab.lisn.upsaclay.fr/competitions/17568 年份&#…...

Spring Boot2.0之十 使用自定义注解、Json序列化器实现自动转换字典类型字段

前言 项目中经常需要后端将字典类型字段值的中文名称返回给前端。通过sql中关联字典表或者自定义函数不仅影响性能还不能使用mybatisplus自带的查询方法&#xff0c;所以推荐使用自定义注解、Json序列化器&#xff0c;Spring的缓存功能实现自动转换字典类型字段。以下实现Spri…...

从电子管到量子计算:计算机技术的未来趋势

计算机发展的历史 自古以来人类就在不断地发明和改进计算工具,从结绳计数到算盘,计算尺,手摇计算机,直到1946年第一台电子计算机诞生,虽然电子计算机至今虽然只有短短的半个多世纪,但取得了惊人的发展吗,已经经历了五代的变革。计算机的发展和电子技术的发展密切相关,…...

将CUBE或3DL LUT转换为PNG图像

概述 在大部分情况下&#xff0c;LUT 文件通常为 CUBE 或 3DL 格式。但是我们在 OpenGL Shader 中使用的LUT&#xff0c;通常是图像格式的 LUT 文件。下面&#xff0c;我将教大家如何将这些文件转换为 PNG 图像格式。 条形LUT在线转换&#xff08;不是8x8网络&#xff09;&am…...

python文件的基本操作,文件读写

1.文件 1.1文件就是存储在某种长期存储设备上的一段数据 1.2文件操作 打开文件-->读写文件-->关闭文件 注意&#xff1a;可以只打开和关闭文件不进行任何操作 1.3文件对象的方法 1.open():创建一个file对象&#xff0c;默认以只读模式打开 2.read(n):n表示从文件中…...

华为认证考试证书下载步骤(纸质+电子版)

华为考试证书可以通过官方渠道下载相应的电子证书&#xff0c;部分高级认证如HCIE还支持申请纸质证书。 一、华为电子版证书申请步骤如下&#xff1a; ①访问华为培训与认证网站 打开浏览器&#xff0c;登录华为培训与认证官方网站 ②登录个人账号 在网站首页&#xff0c;点…...

正式页面开发-登录注册页面

整体路由设计&#xff1a; 登录和注册的切换是切换组件或者是切换内容&#xff08;v-if和 v-else)&#xff0c;因为点击两个之间路径是没有变化的。也就是登录和注册共用同一个路由。登录是独立的一级路由。登录之后进到首页&#xff0c;有三个大模块&#xff1a;文章分类&…...

nss刷题5(misc)

[HUBUCTF 2022 新生赛]最简单的misc 打开后是一张图片&#xff0c;没有其他东西&#xff0c;分离不出来&#xff0c;看看lsb&#xff0c;红绿蓝都是0&#xff0c;看到头是png&#xff0c;重新保存为png&#xff0c;得到一张二维码 扫码得到flag [羊城杯 2021]签到题 是个动图…...

深入Linux序列:进程的终止与等待

在之前的学习中&#xff0c;我们知道我们的进程在运行结束的时候&#xff0c;那么它并不会立即进入死亡状态&#xff0c;而是先进入僵尸状态&#xff0c;维持僵尸状态一段时间&#xff0c;那么此时在僵尸状态中的进程&#xff0c;那么它的内核数据已经移出内存被清理了&#xf…...

蓝桥杯之日期问题2

文章目录 需求11.1 代码 2.需求22.1代码 需求1 2020 年春节期间&#xff0c;有一个特殊的日期引起了大家的注意&#xff1a;2020 年 2 月 2 日。因为如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202&#xff0c;恰好是一个回文数。我们称这样的日期是回文日期…...

【STL】7.STL常用算法(1)

STL常用算法&#xff08;1&#xff09; 前言简介一.遍历算法1.for_each2.transform 二.查找算法1.find2.find_if3.adjacent_find4.binary_search5.count6.cout_if 三.排序算法1.sort2.random_shuffle3.merge4.reverse 总结 前言 stl系列主要讲述有关stl的文章&#xff0c;使用S…...

uniapp 本地数据库多端适配实例(根据运行环境自动选择适配器)

项目有个需求&#xff0c;需要生成app和小程序&#xff0c;app支持离线数据库&#xff0c;如果当前没有网络提醒用户开启离线模式&#xff0c;所以就随便搞了下&#xff0c;具体的思路就是&#xff1a; 一个接口和多个实现类&#xff08;类似后端的模板设计模式&#xff09;&am…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...