Grok图案来自线条-自定义日期



我正试图使用grok模式从以下内容中获取字段。有什么帮助吗,尤其是在自定义日期方面?

0E7 6月21日10日23:37:53.8轨道1 EZ:100 EX:72速度:36 mph

我需要得到田地;

"日期";"时间";"轨道1";"EZ";"EX";"速度";

我试着得到日期模式,但没有运气

您需要一个自定义的grok来获取分隔字段中的日期、月份和年份,然后您需要将月份字段大写,然后添加一个带有完整日期字符串的新字段以用于日期过滤器。

要将日期10JUN21解析为单独的字段,可以使用自定义grok模式。

(?<day>[0-9]{2})(?<month>[A-Z]{3})(?<year>[0-9]{2})

因此,考虑到消息0E7 10JUN21 23:37:53.8 Track 1 EZ: 100 EX: 72 Speed: 36 mph,并从中提取datetime,并进行转换以解析数据,您将需要以下配置。

filter {
grok {
match => {
"message" => "0E7 (?<day>[0-9]{2})(?<month>[A-Z]{3})(?<year>[0-9]{2}) %{TIME:time} %{GREEDYDATA}"
}
}
mutate {
capitalize => ["month"]
add_field => { "datestring" => "%{month} %{day} %{year} %{time}"}
} 
date {
match => ["datestring", "MMM dd yy HH:mm:ss.S"]
remove_field => ["day","month","year","time"]
}
}

这将给您以下结果:

{
"@timestamp" => 2021-06-11T02:37:53.800Z,
"message" => "0E7 10JUN21 23:37:53.8 Track 1 EZ: 100 EX: 72 Speed: 36 mph",
"datestring" => "Jun 10 21 23:37:53.8"
}

如您所见,@timestamp字段具有日期字符串的值,但相对于UTC,因为@timestamp字段使用UTC。

相关内容

  • 没有找到相关文章

最新更新