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

Airflow UI日志为空排查:DAG运行2小时无日志及执行次数显示问题

问题排查方案

1. UI中无日志及任务尝试次数显示的原因

  • 任务未进入调度队列:Scheduler日志显示Found 0 queued task instances,说明任务根本没被纳入调度流程,UI没有对应的任务执行元数据,自然看不到尝试次数和日志入口
  • 日志配置异常:Airflow的日志规则(如logging_config_class配置、远程日志存储权限)出错,导致UI无法拉取日志;若用Kubernetes Executor,任务Pod的日志挂载或采集配置不当,也会让UI无法访问日志
  • 元数据同步失败:Scheduler与WebServer共享的元数据库(如PostgreSQL)出现写入延迟或连接问题,UI读取不到任务执行记录
  • 任务Pod被自动清理:任务执行完成后Pod被销毁,且未配置日志持久化或远程存储,导致无日志可展示

2. 验证日志是否存在及日志位置

判断日志是否存在

  • 先检查Kubernetes集群中是否有对应任务的Pod:
    kubectl get pods -n <你的Airflow命名空间>
    
    找到包含DAG名、任务ID的Pod(命名格式通常为airflow-task-<dag-id>-<task-id>-<随机字符串>)
  • 如果Pod存在,直接查看Pod日志:
    kubectl logs <任务Pod名称> -n <你的Airflow命名空间>
    
    能看到内容说明日志存在但UI未展示;如果Pod不存在或日志为空,说明日志未生成

日志存储位置

  • 本地日志(Kubernetes Executor默认):任务Pod内部的/opt/airflow/logs/<dag-id>/<task-id>/<执行日期>/<尝试次数>目录
  • 远程日志(如配置了S3/MinIO/GCS):日志存储在配置的对象存储路径中,具体路径由Airflow配置里的remote_logging_path决定

3. 日志完全不存在的根因排查方向

  • 调度层面排查
    • 查看Scheduler完整日志,确认是否有任务触发、提交到Kubernetes Executor的记录(比如Submitting task <task-id> to Kubernetes executor),若没有则说明任务未被触发
    • 检查DAG配置:确认schedule_interval、start_date符合触发条件,DAG处于Unpaused状态,任务无depends_on_past等限制导致无法启动
  • Kubernetes集群层面排查
    • 查看Kubernetes事件,检查是否有任务Pod创建失败的记录:
      kubectl get events -n <你的Airflow命名空间>
      
      常见问题包括镜像拉取失败、资源配额不足、ServiceAccount权限不够、PVC挂载失败等
    • 检查Kubernetes Executor配置:确认airflow.cfg中kubernetes_executor的namespace、image、image_pull_secrets、resources等参数是否正确,是否因配置错误导致Pod无法启动
  • 元数据库层面排查
    • 登录Airflow元数据库,查询task_instance表确认对应任务是否有记录:
      SELECT * FROM task_instance WHERE dag_id = '<你的DAG ID>' AND task_id = '<你的任务ID>';
      
      若无记录,说明Scheduler未将任务元数据写入数据库,需检查Scheduler与数据库的连接是否正常、权限是否足够
  • 任务执行层面排查
    • 检查任务的execution_timeout是否过短,导致任务刚启动就被终止且未生成日志;检查任务代码是否有未捕获的异常,导致进程直接退出而未写入日志

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:30:48