来自行的 Grok 模式 - 自定义日期
Grok pattern from line - custom date
我正在尝试使用 grok 模式从以下内容中获取字段。有什么帮助,尤其是自定义日期吗?
0E7 10JUN21 23:37:53.8 赛道 1 EZ:100 EX:72 速度:36 mph
我需要获取字段;
“日期”
“时间”
“轨道 1”
“易”
“前任”
“速度”
我尝试获取日期模式,但没有成功
您需要一个自定义 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
并从中提取 date
和 time
并进行转换以解析数据,您将需要以下配置。
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。
我正在尝试使用 grok 模式从以下内容中获取字段。有什么帮助,尤其是自定义日期吗?
0E7 10JUN21 23:37:53.8 赛道 1 EZ:100 EX:72 速度:36 mph
我需要获取字段;
“日期” “时间” “轨道 1” “易” “前任” “速度”
我尝试获取日期模式,但没有成功
您需要一个自定义 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
并从中提取 date
和 time
并进行转换以解析数据,您将需要以下配置。
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。