簡體   English   中英

Logstash 到 Opensearch,_dateparsefailure 標記

[英]Logstash to Opensearch , _dateparsefailure tag

我在使用 logstash 打開搜索時遇到了一些問題。

filter{
    grok {
            patterns_dir => ["/etc/logstash/conf.d/patterns"]
            match => [ "message","%{DATE_FORM:logdate}%{LOGTYPE:logtype}:%{SPACE}%{GREEDYDATA:msgbody}" ]
    }
    date {
            match => ["logdate", "yyyy.MM.dd-HH.mm.ss:SSS"]
            timezone => "UTC"
            target=>"timestamp"
    }

    mutate {
            remove_field => ["message"]
            add_field => {
                    "file" => "%{[@metadata][s3][key]}"
            }
    }
}

這是我用於 logstash 的 conf 文件。 在打開搜索控制台

@timestamp : Dec 15, 2022 @ 18:10:56.975
logdate [2022.12.10-11.57.36:345]
tags _dateparsefailure

時間戳、日志日期不同,出現_dateparsefailure 錯誤。

在原始日志中,它以

[2022.12.10-11.57.36:345]

這種格式。

現在,

logdate : raw log's timestamp
@timestamp : the time that log send to opensearch

我想匹配 logdate 和 @timestamp。 如何修改 filter.date.match 部分以使 logdate 和 @timestamp 過濾器的結果相同?

如果你有多次你可以有多個filter.date.match ,你可以這樣做:

filter{
    date {
            match => ["logdate", "yyyy.MM.dd-HH.mm.ss:SSS"]
            timezone => "UTC"
            target=>"logdate"
    }
    date {
            match => ["@timestamp", "yyyy.MM.dd-HH.mm.ss:SSS"]
            timezone => "UTC"
            target=>"@timestamp"
    }
}

如果您的時間字段有多種格式,您可以這樣做:

date {
  match => [ "logdate", "yyyy.MM.dd-HH.mm.ss:SSS", "third_format", "ISO8601" ]
  target=> "@timestamp"
}

參考: https://www.elastic.co/guide/en/logstash/current/plugins-filters-date.html#plugins-filters-date-match

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM