在Airflow中设置S3日志记录

时间:2018-02-15 22:21:24

标签: amazon-s3 cloud airflow

这让我疯了。

我在云环境中设置气流。我有一台服务器运行调度程序和Web服务器,一台服务器作为芹菜工作者,我使用的是气流1.8.0。

正在运行的工作正常。 拒绝工作的是记录。

我在两台服务器上的airflow.cfg中设置了正确的路径:

  

remote_base_log_folder = s3:// my-bucket / airflow_logs /

     

remote_log_conn_id = s3_logging_conn

我已在气流用户界面中设置了s3_logging_conn,其中包含访问密钥和密码,如here所述。

我使用

检查了连接
  

s3 = airflow.hooks.S3Hook(' s3_logging_conn')

     

s3.load_string('测试''测试',BUCKET_NAME ='我的斗&#39)

这两个服务器上的工作。因此,正确设置了连接。然而,每当我执行任务时,我得到的只是

  

***日志文件不是本地的。

     

***在这里取得:http:// *******

     

***无法从工作人员获取日志文件。

     

***阅读远程日志......

     

无法从s3:// my-bucket / airflow_logs / my-dag / my-task / 2018-02-15T21:46:47.577537

中读取日志

我尝试按照预期的惯例手动上传日志,而网络服务器仍然无法提取 - 所以问题出在两端。我不知道该做什么,到目前为止我所读到的一切都告诉我应该正在工作。我接近安装1.9.0,我听到更改日志记录,看看我是否更幸运。

更新:我对Airflow 1.9进行了全新安装,并按照具体说明进行了here

Webserver甚至无法启动,但出现以下错误:

  

airflow.exceptions.AirflowConfigException:在配置中找不到section / key [core / remote_logging]

this config template中对此部分的明确引用。

所以我尝试删除它,只是加载S3处理程序而不先检查,而是收到以下错误消息:

  

无法加载配置,包含配置错误。

     

追踪(最近一次呼叫最后一次):

     

文件" /usr/lib64/python3.6/logging/config.py",第384行,已解决:

     

self.importer(使用)的

     

ModuleNotFoundError:没有名为

的模块      

' airflow.utils.log.logging_mixin.RedirectStdHandler&#39 ;;

     

' airflow.utils.log.logging_mixin'不是包

我觉得这不应该这个很难。

任何帮助都会非常感激,欢呼声

1 个答案:

答案 0 :(得分:2)

解决了:

  1. 升级到1.9
  2. 运行了in this comment
  3. 所描述的步骤
  4. 加入

      

    [芯]

         

    remote_logging = True

    to airflow.cfg

  5.   

    pip install --upgrade airflow [log]

  6. 现在一切正常。