Airflow 2.6.1 Docker部署Web UI无法读取任务日志(404错误)
解决Docker部署Airflow 2.6.1 Web UI日志404问题
核心问题分析
从错误信息看,Web UI尝试访问容器内日志服务端口拉取日志但返回404,结合你的airflow.cfg配置,问题集中在端口配置语法错误、日志读取方式不匹配以及Docker容器的日志共享/网络访问问题。
需要调整的配置及操作
1. 修复airflow.cfg中的端口配置错误
你的配置里worker_log_server_port和trigger_log_server_port被错误合并在同一行,导致端口值失效:
# 错误写法 worker_log_server_port = 8080trigger_log_server_port = 8080 # 修正为两行分开配置,使用Airflow默认日志服务端口8793 worker_log_server_port = 8793 trigger_log_server_port = 8793
说明:Airflow Worker的日志服务默认监听8793端口,Web UI依赖此端口拉取日志,必须保证配置格式正确且端口未被占用。
2. 调整task_log_reader配置
- 若使用Local Executor(单容器运行Airflow),将配置改为直接读取本地文件:
task_log_reader = file - 若使用Celery Executor(多容器分布式部署),保持
task_log_reader = task,但需确保Webserver容器能在Docker网络内访问到Worker容器的8793端口。
3. 确保Docker日志目录挂载一致
在Docker启动配置(如Docker Compose)中,必须将宿主机的日志目录挂载到所有Airflow容器(Webserver、Worker、Scheduler)的/opt/airflow/logs路径,保证日志文件在容器间共享:
# 示例Docker Compose挂载配置 volumes: - ./airflow/logs:/opt/airflow/logs
4. 验证日志文件权限
检查/opt/airflow/logs目录及日志文件的权限是否匹配配置中的0o777(文件夹)和0o666(文件),权限不足时执行以下命令修正:
# 进入容器或在宿主机挂载目录执行 chmod -R 777 /opt/airflow/logs
5. 重启Airflow服务
修改配置后,重启所有Airflow容器确保配置生效:
docker-compose restart
内容的提问来源于stack exchange,提问作者andre castro
相关产品推荐
相关产品推荐

