我正在寻找资源来更改Airflow服务(例如Webserver和Scheduler)的日志路径。我时不时要用完空间,因此想将日志移到更大的安装空间。
我正在使用以下给定命令启动服务:
提前谢谢!
答案 0 :(得分:2)
来自https://airflow.apache.org/howto/write-logs.html#writing-logs-locally
用户可以使用base_log_folder设置在airflow.cfg中指定日志文件夹。默认情况下,它位于AIRFLOW_HOME目录中。
您需要为日志相关参数更改airflow.cfg
,如下所示:
[core]
...
# The folder where airflow should store its log files
# This path must be absolute
base_log_folder = /YOUR_MOUNTED_PATH/logs
...
[webserver]
...
# Log files for the gunicorn webserver. '-' means log to stderr.
access_logfile = /YOUR_MOUNTED_PATH/webserver-access.log"
error_logfile = /YOUR_MOUNTED_PATH/webserver-error.log"
...
答案 1 :(得分:1)
可以在airflow.cfg上指定日志位置,如下所示。默认情况下,它位于AIRFLOW_HOME
下[core]
...
# The folder where airflow should store its log files
# This path must be absolute
base_log_folder = /airflow/logs
...
有关其他信息,请参考https://airflow.apache.org/howto/write-logs.html?highlight=logs
答案 2 :(得分:0)
在master(code)和1.10分支(code)中,以下文件的位置都是硬编码的,除非您将参数传递给cli:
日志位置的 rest 可以通过以下变量之一进行修改:
在[core]
部分:
base_log_folder
log_filename_template
log_processor_filename_template
dag_processor_manager_log_location
在[webserver]
部分:
access_logfile
error_logfile
答案 3 :(得分:0)
您可以为 airflow webserver -D
和 airflow scheduler -D
命令提供标志,以将所有生成的网络服务器和调度程序日志文件放在您想要的位置。举个例子:
airflow webserver -D \
--port 8080 \
-A $AIRFLOW_HOME/logs/webserver/airflow-webserver.out \
-E $AIRFLOW_HOME/logs/webserver/airflow-webserver.err \
-l $AIRFLOW_HOME/logs/webserver/airflow-webserver.log \
--pid $AIRFLOW_HOME/logs/webserver/airflow-webserver.pid \
--stderr $AIRFLOW_HOME/logs/webserver/airflow-webserver.stderr \
--stdout $AIRFLOW_HOME/logs/webserver/airflow-webserver.stdout
和
airflow scheduler -D \
-l $AIRFLOW_HOME/logs/scheduler/airflow-scheduler.log \
--pid $AIRFLOW_HOME/logs/scheduler/airflow-scheduler.pid \
--stderr $AIRFLOW_HOME/logs/scheduler/airflow-scheduler.stderr \
--stdout $AIRFLOW_HOME/logs/scheduler/airflow-scheduler.stdout
注意:如果您使用这些,则需要创建 logs/webserver
和 logs/scheduler
子文件夹。这仅针对气流 2.1.2 进行了测试。