Передать параметры из потока воздуха в Logstash - PullRequest
1 голос
/ 30 марта 2020

Я настроил 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.

...