如何解决Logstash 日期过滤器无法正常工作
我试图过滤消息以获取时间戳并使用日期过滤器将字符串转换为日期,但转换后的日期与原始日期不同。
过滤器
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,
小时和分钟已更改
解决方法
logstash 和 elasticsearch 将日期存储为 UTC,而 kibana 会将其映射到浏览器的时区。默认情况下,日期过滤器将使用本地时区。因此,如果您位于亚洲/加尔各答时区,与 UTC 相比为 +05:30,这完全符合预期。如果时间戳字段位于不同的时区,则使用日期过滤器的时区选项来告诉它是哪个时区。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。