Airflow 1.10版本突发告警停止发送问题排查咨询
邮件服务器端变更:虽然你未修改Airflow配置,但外部SMTP服务可能发生了变更——比如服务器地址/端口调整、认证密码过期、IP白名单更新,甚至服务本身下线。可以先通过
telnet your-smtp-host 587测试连通性,再核对airflow.cfg里smtp_host、smtp_user等参数是否与当前SMTP服务要求匹配。DAG通知配置被覆盖:检查目标DAG的
default_args是否明确设置了email和email_on_failure=True,不排除个别DAG的局部配置(比如单独定义的任务参数)覆盖了全局默认值,把告警开关设为了False。元数据状态异常:长期运行的Airflow 1.10可能出现元数据表(如
task_instance)数据不一致的情况——比如失败任务的状态未被正确标记,导致邮件触发逻辑未被触发。可以手动触发一个测试DAG的失败任务,同时查看元数据库中该任务的状态记录是否正常。Worker进程或日志报错:查看Airflow Worker的日志(执行
airflow logs -w),检查是否存在SMTP连接超时、认证失败等邮件发送相关的报错。如果用CeleryExecutor,还要确认Worker节点是否能访问SMTP服务器,以及Worker的环境变量有没有覆盖Airflow的SMTP配置。邮件被拦截或地址失效:邮件可能已经发送,但被收件方邮箱当成垃圾邮件拦截,或者收件地址存在拼写错误、已被注销。可以先检查发件邮箱的已发送箱,再让收件方排查垃圾邮件文件夹。
版本已知bug:Airflow 1.10部分子版本存在邮件通知的已知问题,比如1.10.12之前的版本在任务重试后最终失败时,可能不会触发告警;或者
email_on_retry与email_on_failure的逻辑存在冲突。可以核对对应版本的Release Notes,必要时在测试环境验证小版本升级的修复效果。
内容的提问来源于stack exchange,提问作者kavya

