Я настроил logsta sh для прослушивания журналов по умолчанию по умолчанию. Я хочу создать индекс вasticsearch как {dag_id} - {task_id} - {execute_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 в logsta sh. dag_id, task_id, execute_date, try_number
Это мой файл конфигурации logsta sh.
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 в Logsta sh?
Я настроил logsta sh для прослушивания пути журналов. Так как remote_logging имеет значение True в airfow.cfg, журналы не записываются в базовую папку журналов. Если это неверно или я подключаюсь к Amazon S3, журналы также записываются в путь base_log_folder. Но для меня, чтобы настроить logsta sh, журналы должны быть записаны в локальной папке. Я использую версию воздушного потока 1.10.9. Что я могу сделать для потоковой передачи журналов в индекс Elasticsearch.