【问题标题】:How do you stop/check logs for airflow webserver/scheduler with --daemon?如何使用--daemon 停止/检查气流网络服务器/调度程序的日志?
【发布时间】:2017-07-19 01:38:33
【问题描述】:

您好,我正在使用 Airflow 并在 EC2 的后台运行。 但是你如何停止/检查日志? 我在文档中找不到详细的解释。

谢谢!

【问题讨论】:

    标签: airflow


    【解决方案1】:

    作业/任务日志可通过管理 UI 获得。我已经放弃了网络服务器日志。在将日志记录参数(-l、--stdout、--stderr)传递给airflow webserver 命令时,我从未见过任何输出日志记录。

    我确实通过启动它来捕获调度程序输出,如下所示:

    nohup airflow scheduler >> ${AIRFLOW_HOME}/logs/scheduler.log 2>&1 &
    

    Airflow 网络服务器将在 AIRFLOW_HOME 文件夹中创建一个 PID 文件,因此您可以使用 kill -TERM $(cat ${AIRFLOW_HOME}/airflow-webserver.pid 或使用 pkill -f "gunicorn: master [airflow-webserver]" 停止它。

    【讨论】:

    • 我也无法让这些标志正常工作。但是,它们只有在您在命令行上调用气流时也传递 -D 时才起作用。
    • @jhnclvr - 是的,我使用了 -D (尤其是对于网络服务器)。在气流 1.8.0 中,这往往会阻塞很长时间。重定向仍然无法正常工作。
    • 我同意,日志仍然大部分是空的。如果没有 -D,我根本无法让它们出现
    • 您可以在airflow.cfg 中使用access_logfile 和error_logfile 指定日志文件。
    【解决方案2】:

    即使指定的日志位置设置为/var/log/airflow/,我也能够在/var/log/upstart/ 下找到 Airflow 网络服务器日志。我最初认为网络服务器进程没有生成任何日志,但结果发现它只是位于与配置文件中指定的位置不同的位置。

    【讨论】:

      【解决方案3】:

      如果您使用 systemd 启动您的 Airflow-Webserver 和其他守护程序(请参阅this repo),这非常简单:

      journalctl -u airflow-webserver.service

      【讨论】:

      • 我收到bash: journalctl: comand not found
      • 那么你没有使用 systemd 作为你的系统进程管理工具/初始化系统,而是另一个。例如,这取决于您的 Linux 发行版。
      猜你喜欢
      • 1970-01-01
      • 2022-08-15
      • 2021-06-20
      • 2021-04-17
      • 2021-03-06
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 2023-03-07
      相关资源
      最近更新 更多