celery - Airflow 1.10.1 在哪里存储其三个服务(即网络服务器、调度程序和工作线程)的日志

标签 celery airflow airflow-scheduler

我们最近从 1.8 升级到 Airflow 1.10.1,我们观察到 Airflow 服务不再在/var/log/airflow 中写入日志

我们使用自定义命令来运行 Airflow 服务,甚至这些命令不会写入命令中指定的日志文件:-

nohup Airflow 调度程序 -sd/usr/airflow/DAGS --stdout/dev/null --stderr Scheduler_error.log >/dev/null 2>nohup_error.log &

nohup airflow webserver -p 8080 --stdout/dev/null --stderr/usr/airflow/airflow_webserver_error.log --error_logfile ->/dev/null 2>/usr/airflow/nohup_airflow_webserver.log &

scheduler_error.log 和airflow_webserver_error.log 文件保持为空。

服务日志机制是否在 Airflow 中被破坏?

感谢您的帮助。

最佳答案

注意:这并不是真正的答案,而只是我对 Airflow 的有限经验的说明


最近,我也被有关 Airflow (v1.10.2) 登录的谜团所困扰。根据我的使用经验(LocalExecutor),以下是我所知道的(如果我错了,请纠正我)

  • 网络服务器日志:我从未找到任何明确标题为“webserver_logs”(或类似名称)的目录/文件。当然,当您调用 airflow webserver 命令时,您会在 (Linux) shell 上得到一些东西。然而,由于 DAG 的解析目前是由 webserver process 完成的( checkout this 线程和 AIP-12 ),这些日志可以在以下位置找到: base_log_folder/scheduler/date/path/to/your_file.py.log(令人惊讶的是,它位于“scheduler”文件夹中)。正如 @Chirrut Imwe base_log_folder points to 已经指出的那样默认情况下 AIRFLOW_HOME/logs

  • 调度程序日志:除了使用 airflow Scheduler 命令启动 shell 时在 shell 上看到的行之外,我不知道它们的位置

  • 任务日志:这些日志位于base_log_folder/dag_id/task_id/date_time/1.log。当然你直接看到它们on the WebUI使用查看日志按钮(点击任务气泡后)

  • 工作日志:由于我使用的是 LocalExecutor,因此从未遇到过此问题。但您可以尝试从 puckel/docker-airflow 获取提示他们也提供了 CeleryExecutor


UPDATING.md页面有大量关于日志记录的内容

关于celery - Airflow 1.10.1 在哪里存储其三个服务(即网络服务器、调度程序和工作线程)的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54899130/

相关文章:

django - 想要使用单个脚本运行多个命令

Airflow 从 cli 传递参数

Python:计算当前时间和上次登录之间的时间。 (自动通讯)

python - Celery 和 Django 简单示例

python - 让 Celery 使用 Django 异常中间件

python-2.7 - 断言错误 : INTERNAL: No default project is specified

airflow - key 错误 : 'ti' in Apache Airflow xcom

Airflow 2.0 对 Contrib Operator 的支持

airflow - Airflow 可以用于运行永无止境的任务吗?

python - 如何强制从 python 站点包导入库?