【发布时间】:2021-04-28 15:49:49
【问题描述】:
我试图过滤消息以获取时间戳并使用日期过滤器将字符串转换为日期,但转换后的日期与原始日期不同。
过滤代码:
filter {
grok {
match => [ "message", "%{TIMESTAMP_ISO8601:timestamp} \| %{LOGLEVEL:loglevel} \| %{NOTSPACE:taskid} \| %{NOTSPACE:logger} \| %{WORD:label}( \| %{INT:duration:int})?" ]
}
date {
match => ["timestamp", "YYYY-MM-DD HH:mm:ss,SSS"]
target => "timestamp"
}
}
输入
2021-04-19 12:06:39,586 | INFO | 12345 | TASK_START | start
输出
"timestamp" => 2021-01-19T06:36:39.586Z,
小时和分钟已更改
【问题讨论】:
-
在这种情况下,您可以使用 dissect 过滤器,而不是使用 grok,它应该会更高效