我在 Centos 7 服务器上运行 airflow 1.10.11 作为 systemd 服务。
我想将日志记录位置更改为其他文件夹。为此,我在文件中base_log_folder = /code/python/airflow/airflow/logs
从base_log_folder = /home/cel/sm/airflow/logs
(Airflow_Home)进行了更改airflow.cfg
。
完成此操作后,当我重新启动调度程序和 Web 服务器时sudo systemctl restart airflow-scheduler
;sudo systemctl restart airflow-webserver
日志记录仍然在旧日志文件夹中,即/home/cel/sm/airflow/logs
。
我参考此链接来更改日志文件夹的位置:https://airflow.apache.org/docs/stable/howto/write-logs.html
不知道我这里遗漏了什么。如能提供任何帮助我将不胜感激。
答案1
TLDR:通过更改base_log_folder
值,您只更改了任务的日志目录,您还需要通过更改以下child_process_log_directory
值来更改调度程序的日志目录airflow.cfg
Airflow 中实际上有两种类型的日志记录:
- 任务日志记录,将任务日志写入 DAG
- 处理器日志记录,写入气流调度程序日志
airflow.cfg
日志目录从 airflow 2.0 开始,这两种日志记录在文件中的两个不同配置中设置:
base_log_folder
[logging]
在任务日志部分,使用默认值{AIRFLOW_HOME}/logs
child_process_log_directory
在[scheduler]
处理器日志记录部分使用默认值{AIRFLOW_HOME}/logs/scheduler
使用 systemd 重新加载配置重新启动 airflow-scheduler 和 airflow-webserver 进程。因此,我猜想仍写入旧日志目录中的日志只是调度程序的日志,您应该能够通过更改child_process_log_directory
值来更正它,如下所示:
child_process_log_directory = /code/python/airflow/airflow/logs/scheduler
答案2
您还应该重新启动工作程序(如果您使用的是 celery 或类似程序)。对我来说,我只需重新启动 EC2,日志重定向就可以正常工作。如果可能,请尝试重新启动服务器。