如何将气流日志写入Elasticsearch?

时间:2019-10-11 21:06:46

标签: airflow airflow-scheduler

我正在使用Airflow 1.10.5。似乎找不到有关如何使用Elasticsearch设置远程日志记录的完整文档或样本。我看到了这份文档https://airflow.readthedocs.io/en/stable/howto/write-logs.html),但没有帮助。我正在尝试将气流(而非任务)日志写入ES。

2 个答案:

答案 0 :(得分:0)

据我了解的文档,ES日志处理程序只能从ES读取。您将必须设置日志记录以打印到文件中,然后使用filebeat之类的东西将文件内容发布到ES,然后Airflow可以将它们读回...

https://airflow.readthedocs.io/en/stable/howto/write-logs.html#writing-logs-to-elasticsearch

  

将日志写入Elasticsearch

     

气流可以配置为阅读任务   来自Elasticsearch的日志并有选择地将日志写入stdout   标准或json格式。以后可以收集这些日志并   使用流利的工具转发给Elasticsearch集群,   logstash或其他。

答案 1 :(得分:0)

我能够使用 [filebeat][1] shipper 实现。

filebeat.yml 中的输入配置部分

</snip>

# ============================== Filebeat inputs ===============================

filebeat.inputs:

# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.

- type: log

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /path/to/logs/*.log

</snip>

filebeat.yml 中的输出配置部分

<snip>
# ---------------------------- Elasticsearch Output ----------------------------
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["localhost:9200"]

  # Protocol - either `http` (default) or `https`.
  #protocol: "https"

  # Authentication credentials - either API key or username/password.
  #api_key: "id:api_key"
  username: "elastic"
  password: "changeme"

</snip>

非常适合阅读doc,特别是关于气流 --> ES。