【发布时间】:2020-07-11 03:31:08
【问题描述】:
我已将 logstash 配置为在默认气流日志路径中侦听日志。我想在 elasticsearch 中创建索引为 {dag_id}-{task_id}-{execution_date}-{try_number}。所有这些都是来自 Airflow 的参数。这些是airflow.cfg 中修改后的值。
[core]
remote_logging = True
[elasticsearch]
host = 127.0.0.1:9200
log_id_template = {{dag_id}}-{{task_id}}-{{execution_date}}-{{try_number}}
end_of_log_mark = end_of_log
write_stdout = True
json_format = True
json_fields = asctime, filename, lineno, levelname, message
这些任务实例详细信息需要从 Airflow 传递到 logstash。 dag_id, 任务ID, 执行日期, try_number
这是我的 logstash 配置文件。
input {
file{
path => "/home/kmeenaravich/airflow/logs/Helloworld/*/*/*.log"
start_position => beginning
}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "logginapp-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}
我有 2 个问题。如何将 Airflow 中的参数传递给 Logstash?
我已将 logstash 配置为监听日志路径。由于 airfow.cfg 中的 remote_logging 为 True,因此日志不会写入基本日志文件夹。如果这是错误的,或者如果我连接到 Amazon S3,日志也会写入 base_log_folder 路径。但是,我要配置 logstash,需要将日志写入本地文件夹。我使用气流版本 1.10.9 。如何将日志流式传输到 Elasticsearch 索引。
【问题讨论】:
标签: elasticsearch logstash airflow elastic-stack logstash-configuration