logstash 升级Airflow版本后,远程日志记录不起作用

mi7gmzs6  于 2022-12-09  发布在  Logstash
关注(0)|答案(1)|浏览(157)

我们正在使用Airflow v2.1.4和Kubernetes执行器。
我们的k8s集群pod stdout通过filebeat-〉logstash-〉Elasticsearch(ELK)自动发布。
在logstash中,我们将创建log_id字段:

mutate {
    copy => { "[log][offset]" => "offset" }
    # change format from "2020-04-13T17_50_00_plus_00_00" to "2020-04-13T17:50:00+00:00"
    gsub => [ "[kubernetes][labels][execution_date]", "_plus_", "+" ]
    gsub => [ "[kubernetes][labels][execution_date]", "_", ":" ]
    add_field => [ "log_id", "%{[kubernetes][labels][dag_id]}-%{[kubernetes][labels][task_id]}-%{[kubernetes][labels][execution_date]}-%{[kubernetes][labels][try_number]}" ]
 }

现在,日志可通过气流网络服务器获得-到目前为止。
现在我们将Airflow升级到了最新版本v2.2.3,我们失去了远程日志功能。经过深入研究,我们发现在最新版本中删除了execution_date标签(替换为run_id)。我们在发行说明和以下PR中看到了一些迹象:一个月一个月
dag_id值似乎不够精确,无法提取确切的执行日期(例如:scheduled__2022-01-09T0020000000-8c05ec558)的数据。
如何在最新版本中取回日志?有什么解决方法建议吗?检索日志的另一种方法?

    • EDIT:**文档似乎已更新(但cfg示例未更新)为:
log_id_template = {dag_id}-{task_id}-{run_id}-{try_number}

我会尝试并更新

relj7zay

relj7zay1#

我决定采用一种不同的方法,使用json日志代替,这样我就不必处理所有的转换,也不必准备好log_id
请参阅以下答案了解更多信息:Airflow wrong log_id format

相关问题