配置 Airflow 告警消息通知

更新时间:
复制 MD 格式

DMS Airflow 支持配置告警消息通知,在 DAG 任务执行成功或失败时及时发送通知。可以使用 DMS 内置消息通知,也可以配置自定义 SMTP 邮件服务发送告警邮件。

前提条件

搭建Airflow环境

使用 DMS 消息通知

  1. 进入目标代码仓库

  2. 配置依赖包。

    from airflow.providers.alibabadms.cloud.notifications.dms_notification import DmsNotifier
  3. 配置告警消息通知。

    告警消息默认通知工作空间的管理员,可以前往消息通知管理修改接收消息的对象。

    • 失败告警:向 DAGdefault_args 添加 on_failure_callback 参数,取值为 lambda context: DmsNotifier(success=False).notify(context)

    • 成功告警:向 DAGdefault_args 添加 on_success_callback 参数,取值为 lambda context: DmsNotifier(success=True).notify(context)

    示例代码:

    dag = DAG(
    	dag_id='iac_ove_test',
    	default_args={
    		'on_failure_callback':lambda context: DmsNotifier(success=False).notify(context),
    		'on_success_callback':lambda context: DmsNotifier(success=True).notify(context)
    	}
    )

使用自定义邮件服务

通过配置 SMTP 服务参数和 Airflow 连接,可以使用自定义邮件服务发送 Airflow 告警通知邮件。配置分为两步:

  1. 通过 Airflow 实例的配置选项设置 SMTP 服务参数。

  2. 通过 Airflow 创建 smtp_default 连接,存储邮箱认证信息。

两步都完成后,Airflow 才能正常发送告警邮件。

步骤一:配置 SMTP 服务参数

  1. 登录数据管理DMS 5.0

  2. 单击控制台左上角的2023-01-28_15-57-17.png图标,选择全部功能 > Data+AI > 工作空间

    说明

    若您使用的是非极简模式的控制台,请在顶部菜单栏中,选择Data+AI > 工作空间

  3. 单击Airflow实例所在的工作空间名,然后在左侧选择image > Airflow实例

  4. 在目标 Airflow 实例的操作列,单击配置选项

  5. 对话框弹出后,单击添加配置选项,依次添加以下 SMTP 配置项。

    重要

    smtp_sslsmtp_starttls 是互斥的两种加密方式,不能同时设为 True

    配置选项

    示例值

    说明

    smtp_host

    smtp.qiye.aliyun.com

    SMTP 服务器地址,由邮件服务提供商提供

    smtp_port

    465

    SMTP 服务端口。使用 SSL 加密时通常为 465,使用 STARTTLS 加密时通常为 587

    smtp_ssl

    True

    是否启用 SSL 加密。启用时需将 smtp_starttls 设为 False

    smtp_starttls

    False

    是否启用 STARTTLS 加密。启用时需将 smtp_ssl 设为 False

    smtp_mail_from

    sender@example.com

    告警邮件的发件人地址

    smtp_user

    sender@example.com

    SMTP 服务器认证的登录账号,通常与发件人地址一致

  6. 单击确认

    等待配置生效。Airflow 实例的状态会变更为部署中,状态重新变为运行中时表示配置已生效。

步骤二:配置 Airflow 连接

SMTP 服务参数配置完成后,需要配置 Airflow 的连接,用于存储邮箱的认证信息。

  1. 在目标 Airflow 实例的操作列,单击打开,进入 Airflow Web UI 界面。

  2. 在左侧导航栏,选择 管理 > 连接

  3. 单击右上角的添加连接,配置以下参数。

    参数

    说明

    连接ID

    smtp_default

    固定值,不可修改。Airflow 默认通过此 ID 获取 SMTP 认证信息

    连接类型

    SMTP

    选择SMTP

    登录

    邮箱地址

    smtp_user 配置项的值保持一致

    密码

    邮箱密码

    邮箱的登录密码或应用专用密码(授权码)

  4. 单击保存

配置完成后,可以使用 DAG 的 EmailOperator 或设置 email_on_failure = True 触发告警邮件,验证 SMTP 配置是否生效。