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

本地Ubuntu环境运行Airflow DAG时日志文件不存在问题求助

本地Airflow运行DAG时日志获取失败问题解决

环境与DAG代码

Ubuntu本地部署Airflow,配置文件路径为/home/airflow/airflow/airflow.cfg,已创建DAG目录/home/airflow/airflow/dags/,示例DAG代码如下:

from datetime import datetime, timedelta

from airflow import DAG
from airflow.operators.bash import BashOperator


default_args = {
    'owner': 'airflow',
    'retries': 5,
    'retry_delay': timedelta(minutes=2)
}


with DAG(
    dag_id='our_first_dag',
    default_args=default_args,
    description='This is our first dag that we write',
    start_date=datetime(2022, 7, 29, 2),
    schedule_interval='@daily'
) as dag:
    task1 = BashOperator(
        task_id='first_task',
        bash_command="echo hello world, this is the first task!"
    )

    task1

DAG识别状态

执行airflow dags list确认DAG已被识别:

$ airflow dags list
dag_id           | filepath         | owner   | paused
=================+==================+=========+=======
our_first_dag    | our_first_dag.py | airflow | False 

运行错误信息

重启调度器与Webserver后运行DAG,出现如下错误:

*** Log file does not exist: /home/airflow/airflow/logs/dag_id=our_first_dag_v5/run_id=manual__2022-11-13T01:35:03.807018+00:00/task_id=first_task/attempt=4.log
*** Fetching from: http://:8793/log/dag_id=our_first_dag_v5/run_id=manual__2022-11-13T01:35:03.807018+00:00/task_id=first_task/attempt=4.log
*** Failed to fetch log file from worker. Request URL is missing an 'http://' or 'https://' protocol.

Airflow目录结构

Airflow根目录内容:

-rw-rw-r-- 1 airflow airflow  50564 Nov 12 12:56 airflow.cfg
-rw-r--r-- 1 airflow airflow 454656 Nov 11 13:07 airflow.db
-rw-r--r-- 1 airflow airflow      7 Nov 12 18:12 airflow-webserver.pid
drwxrwxr-x 3 airflow airflow   4096 Nov 12 18:08 dags
drwxrwxr-x 4 airflow airflow   4096 Nov 12 17:56 logs
-rw-rw-r-- 1 airflow airflow   4743 Nov 11 12:57 webserver_config.py

问题原因与解决方法

原因

错误中日志请求URL缺少Worker主机地址,说明Airflow配置中Worker的主机标识参数未正确设置,导致Webserver无法定位Worker获取日志;同时本地日志文件不存在,可能是Worker执行任务时日志写入失败或任务未实际执行。

解决步骤

  1. 修改Airflow配置
    打开/home/airflow/airflow/airflow.cfg,找到并调整以下参数:

    • 设置worker_hostname_callable = airflow.utils.net.get_hostname:让Worker自动获取正确的主机名
    • 设置worker_listen_address = 127.0.0.1(或你的机器内网IP):指定Worker监听地址
    • 确认worker_webserver_port = 8793:与错误日志中的端口保持一致
    • 若使用LocalExecutor,确保executor = LocalExecutor(默认SequentialExecutor无需单独启动Worker)
  2. 检查日志目录权限
    确认logs目录权限正确,当前目录权限drwxrwxr-x已满足Airflow用户读写需求,若日志子目录权限异常,可执行:

    sudo chown -R airflow:airflow /home/airflow/airflow/logs
    sudo chmod -R 775 /home/airflow/airflow/logs
    
  3. 重启Airflow服务
    重启调度器、Webserver(若使用CeleryExecutor需同时重启Worker):

    airflow scheduler restart
    airflow webserver restart
    # 若使用CeleryWorker
    airflow celery worker restart
    
  4. 重新触发DAG
    在Web UI或通过命令行重新触发DAG执行,检查日志是否正常生成与访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:56:06