文档下载建议反馈入口

  • 功能概述
  • 流程说明
  • 功能配置

邮件通知

功能概述

KaiwuDB 邮件通知功能能够在数据库关键指标(如 CPU 使用率、内存使用率、连接数、存储空间等)超过预设阈值,或许可证即将到期时,自动向指定邮箱发送通知。该功能具备以下特点:

  • 多维度监控:实时跟踪 CPU、内存、连接数、存储空间、剩余测点数等核心运行指标
  • 智能告警机制:支持自定义告警阈值、触发持续时间及冷却时间,降低误报率并避免重复告警
  • 灵活配置方式:可通过 SQL 语句或图形界面完成配置,支持设置多个收件邮箱
  • 许可证到期提醒:自动检测许可证有效期,提前发送到期通知,避免服务中断风险

说明

  • 开启邮件通知功能后,系统会自动启动监控模块,监控系统运行资源和许可证临期时间,可能会消耗一部分数据库性能。
  • 在短时间内,如果同一个 IP 地址发送 5 条以上的邮件,STMP 服务器会限制该 IP 地址的登录请求。等待 10 分钟后,该 IP 地址才能发送邮件。

流程说明

KaiwuDB 邮件通知功能的整体逻辑包括邮件通知配置、指标监控和邮件发送。具体流程如下所示:

  1. 用户完成邮件通知配置后,系统将解析和获取发送邮件所需的配置信息。

  2. 系统通过监控模块定期获取以下指标信息:

    • CPU 使用率
    • 内存使用率
    • 连接数
    • 存储空间使用率
    • 剩余测点数使用率
    • License 剩余天数
  3. 当某个指标值超过默认阈值或用户设置值时,就会触发告警并记录一条告警日志。如果启用了邮件通知功能,且配置无误,系统将自动生成邮件并发送给目标邮箱。

功能配置

KaiwuDB 支持通过用户通过以下方式设置邮件通知功能:

  • 通过 SQL 语句配置:适合熟悉命令行操作的用户,配置灵活高效

  • 通过 KaiwuDB 监控界面:提供可视化操作界面,配置直观便捷。具体步骤参见邮件报警

    邮件通知界面示例

以下以 SQL 语句的配置为例说明如何完成邮件通知配置:

启用邮件通知

前提条件

  • 非三权分立模式下,用户是 admin 角色的成员。默认情况下,root 用户属于 admin 角色。
  • 三权分立模式下,用户是 sysadmin 角色的成员。默认情况下,sysroot 用户属于 sysadmin 角色。

步骤

  1. 配置 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 个地址,使用逗号分隔。
  2. (可选)自定义告警阈值。取值范围为 [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>;
      
  3. (可选)设置 License 剩余天数。默认情况下,许可证过期前 30 天开始发送通知。

    SET CLUSTER SETTING alert.license.threshold = <days>;
    
  4. 确保邮件通知已启用:

    SET CLUSTER SETTING alert.email.enabled = true;
    

关闭邮件通知

默认情况下,KaiwuDB 开启邮件通知功能。如需关闭,用户可以使用 SQL 命令或 KaiwuDB 监控平台关闭邮件通知功能。

前提条件

  • 非三权分立模式下,用户是 admin 角色的成员。默认情况下,root 用户属于 admin 角色。
  • 三权分立模式下,用户是 sysadmin 角色的成员。默认情况下,sysroot 用户属于 sysadmin 角色。

步骤

  1. 关闭邮件通知功能。
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>;