邮件通知
功能概述
KaiwuDB 邮件通知功能能够在数据库关键指标(如 CPU 使用率、内存使用率、连接数、存储空间等)超过预设阈值,或许可证即将到期时,自动向指定邮箱发送通知。该功能具备以下特点:
- 多维度监控:实时跟踪 CPU、内存、连接数、存储空间、剩余测点数等核心运行指标
- 智能告警机制:支持自定义告警阈值、触发持续时间及冷却时间,降低误报率并避免重复告警
- 灵活配置方式:可通过 SQL 语句或图形界面完成配置,支持设置多个收件邮箱
- 许可证到期提醒:自动检测许可证有效期,提前发送到期通知,避免服务中断风险
说明
- 开启邮件通知功能后,系统会自动启动监控模块,监控系统运行资源和许可证临期时间,可能会消耗一部分数据库性能。
- 在短时间内,如果同一个 IP 地址发送 5 条以上的邮件,STMP 服务器会限制该 IP 地址的登录请求。等待 10 分钟后,该 IP 地址才能发送邮件。
流程说明
KaiwuDB 邮件通知功能的整体逻辑包括邮件通知配置、指标监控和邮件发送。具体流程如下所示:
用户完成邮件通知配置后,系统将解析和获取发送邮件所需的配置信息。
系统通过监控模块定期获取以下指标信息:
- CPU 使用率
- 内存使用率
- 连接数
- 存储空间使用率
- 剩余测点数使用率
- License 剩余天数
当某个指标值超过默认阈值或用户设置值时,就会触发告警并记录一条告警日志。如果启用了邮件通知功能,且配置无误,系统将自动生成邮件并发送给目标邮箱。
功能配置
KaiwuDB 支持通过用户通过以下方式设置邮件通知功能:
通过 SQL 语句配置:适合熟悉命令行操作的用户,配置灵活高效
通过 KaiwuDB 监控界面:提供可视化操作界面,配置直观便捷。具体步骤参见邮件报警。
以下以 SQL 语句的配置为例说明如何完成邮件通知配置:
启用邮件通知
前提条件
- 非三权分立模式下,用户是
admin
角色的成员。默认情况下,root
用户属于admin
角色。 - 三权分立模式下,用户是
sysadmin
角色的成员。默认情况下,sysroot
用户属于sysadmin
角色。
步骤
配置 SMTP 服务器设置:
SET CLUSTER SETTING alert.smtp.config = '{ "SMTPServer": "smtp.example.com", "Port": 端口号, "Username": "user@example.com", "Password": "yourpassword", "FromEmail": "from@example.com", "ToEmails": ["to1@example.com", "to2@example.com"] }';
参数说明:
参数 说明 SMTPServer
邮件服务器的域名或 IP 地址。仅支持英文字母、数字和单引号 '
。Port
邮件服务器的端口号。取值范围为 [1,65535]。常见端口号:
-25
:默认的 SMTP 端口(非加密)。
-587
:用于加密的 SMTP 端口(STARTTLS)。
-465
:用于 SSL/TLS 加密的 SMTP 端口。Username
邮件服务器登录用户名,通常为邮箱地址。 Password
邮件服务器登录密码或授权码。
注意:
- 通常情况下是邮箱账号的登录密码。在使用外部 SMTP 服务时,可能需要应用专用密码(授权码)。
- 建议使用环境变量或加密配置文件安全存储密码。FromEmail
发送邮件的邮箱地址。 ToEmails
接收邮件的邮箱地址列表,可以有不超过 10 个地址,使用逗号分隔。 (可选)自定义告警阈值。取值范围为
[0,1]
。默认阈值为大多数资源的0.8
(80%)和连接数的0.9
(90%)。CPU 使用率:
SET CLUSTER SETTING alert.cpu.threshold = <threshold>;
内存使用率:
SET CLUSTER SETTING alert.mem.threshold = <threshold>;
连接数:
SET CLUSTER SETTING alert.connections.threshold = <threshold>;
存储空间使用率(已用总空间和时序热温冷数据空间):
SET CLUSTER SETTING alert.storage.threshold = <threshold>;
剩余测点数使用率:
SET CLUSTER SETTING alert.endpoint.threshold = <threshold>;
(可选)设置 License 剩余天数。默认情况下,许可证过期前 30 天开始发送通知。
SET CLUSTER SETTING alert.license.threshold = <days>;
确保邮件通知已启用:
SET CLUSTER SETTING alert.email.enabled = true;
关闭邮件通知
默认情况下,KaiwuDB 开启邮件通知功能。如需关闭,用户可以使用 SQL 命令或 KaiwuDB 监控平台关闭邮件通知功能。
前提条件
- 非三权分立模式下,用户是
admin
角色的成员。默认情况下,root
用户属于admin
角色。 - 三权分立模式下,用户是
sysadmin
角色的成员。默认情况下,sysroot
用户属于sysadmin
角色。
步骤
- 关闭邮件通知功能。
SET CLUSTER SETTING alert.email.enabled = false;
定制化告警功能
KaiwuDB 支持用户根据需要设置以下指标告警信息:
- 告警触发持续时间:告警条件需要持续满足指定时间后才会触发告警通知,用于控制告警触发的灵敏度,防止误报。默认时间为 1 秒。
- 告警冷却时间:在触发告警后,相同告警条件在指定时间内不会重复发送告警通知,控制告警通知的频率,防止重复告警,默认时间为 2 分钟。
前提条件
- 非三权分立模式下,用户是
admin
角色的成员。默认情况下,root
用户属于admin
角色。 - 三权分立模式下,用户是
sysadmin
角色的成员。默认情况下,sysroot
用户属于sysadmin
角色。
步骤
设置告警触发持续时间:
SET CLUSTER SETTING alert.trigger.duration = <duration>;
设置告警冷却时间:
SET CLUSTER SETTING alert.cooldown.duration = <duration>;