You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已完成全部必需配置 为何EC2上的Superset告警邮件仍不生效?

问题核心原因

最根本的触发失败原因是仅启动了Superset的Web服务进程,未启动负责告警、报告定时调度与执行的独立后台任务Worker进程。
你在config.py中配置的功能开关、SMTP连接参数本身没有语法问题,执行superset init的初始化操作也已完成,但你贴出的日志仅包含Web服务的werkzeug请求访问记录,没有任何任务调度器的运行日志,说明从服务启动链路层面就没有执行定时任务的组件——无论你将告警间隔设置为1分钟还是更长时间,任务都不会被拉取、触发执行,自然UI上的last run列永远不会有值。
日志中出现的cron_descriptor.GetText:Failed to find locale en_US属于非核心的环境类报错,不会阻塞任务流程,仅会影响cron表达式的可读文本展示。

排查与解决步骤
  • 启动告警/报告专属后台Worker进程
    对应当前2021年前后的Superset版本(1.3.x/1.4.x),在Web服务启动完成后,需要单独执行superset worker命令启动任务调度进程。该进程会直接读取Superset元数据库中存储的告警、报告配置,按照设定的触发时间执行任务、更新执行状态、完成邮件发送逻辑。如果缺少这个进程,所有计划类任务都不会进入执行队列。
  • 验证Worker运行状态
    正常启动Worker后,控制台会输出APScheduler调度器初始化的相关日志;将告警间隔设置为1分钟进行测试时,最多等待2分钟即可在UI的last run列看到对应执行时间,同时日志中会输出任务拉取、执行的完整流程日志,和之前仅返回Web请求的日志有明确区别。
  • 处理locale类环境报错
    日志中提示的缺失en_US locale的问题,是因为EC2实例的基础Amazon Linux镜像未预装英文语言包导致的。可以在实例上执行sudo yum install glibc-langpack-en安装对应依赖,重启Worker进程后即可消除该报错,避免cron描述解析异常。
  • 提前规避SMTP连接的潜在问题
    等Worker正常触发任务后,若出现邮件发送失败的问题,需要检查两类配置:
    • EC2实例安全组的25端口出站规则是否放开,确认无网络拦截
    • AWS SES侧的SMTP凭证是否有效、发件邮箱是否完成验证,且当前EC2实例的公网IP已被SES允许发送邮件(注:EC2默认对25端口有出站限流,若发送失败可临时切换为SES提供的587端口测试)
  • 配置兼容性校验
    你在config.py中配置的ENABLE_SCHEDULED_EMAIL_REPORTS、ENABLE_ALERTS属于旧版本兼容配置,在开启FEATURE_FLAGS中的ALERT_REPORTS开关后,所有告警、报告的调度逻辑会被统一整合到Worker进程中,上述配置不会产生冲突,也无需额外启动Celery Beat进程。

Superset告警列表界面,last run列无执行记录


内容的提问来源于stack exchange,提问作者Debapratim Chakraborty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.27 19:15:08