更改气流服务日志路径

时间:2018-11-29 18:34:11

标签: airflow airflow-scheduler

我正在寻找资源来更改Airflow服务(例如Webserver和Scheduler)的日志路径。我时不时要用完空间,因此想将日志移到更大的安装空间。

  • airflow-scheduler.log
  • airflow-webserver.log
  • airflow-scheduler.out
  • airflow-webserver.out
  • airflow-scheduler.err
  • airflow-webserver.err

我正在使用以下给定命令启动服务:

  • 气流网络服务器-D
  • 气流调度器-D

提前谢谢!

4 个答案:

答案 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:

  • airflow-webserver.err
  • airflow-webserver.out
  • airflow-webserver.log
  • airflow-scheduler.err
  • airflow-scheduler.out
  • airflow-scheduler.log

日志位置的 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 -Dairflow 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/webserverlogs/scheduler 子文件夹。这仅针对气流 2.1.2 进行了测试。