我有一个自定义格式的日志文件,日期字段如下所示:
Dec 4 23:59:21
Nov 21 23:59:21
在我的logstash配置中,我有这个用于过滤器:
date {
type => "custom"
# tell it the format
custom_timestamp => ["MMM d HH:mm:ss", "MMM dd HH:mm:ss"]
# locale didn't help
locale => "en"
}
mutate{
type => "custom"
# replace the timestamp
replace => ["@timestamp", "%{custom_timestamp}"]
}
应该用日志中的自定义时间戳替换logstash时间戳(我现在从旧日志回填测试)。
如果我打开调试标志并输出到stdout,它会显示@timestamp
已替换为custom_timestamp
,但我收到一条错误消息,告诉我无法导入:
:exception=>java.lang.IllegalArgumentException: Invalid format: "Dec 4 23:59:21"
如何转换日期格式?
答案 0 :(得分:1)
原来我正在处理的样本是错误的。你不需要mutate替换,配置就是这个:
date {
type => "custom"
# tell it the format
custom_timestamp => ["MMM d HH:mm:ss", "MMM dd HH:mm:ss"]
# date format is english, computer might not be
locale => "en"
}
mutate{
type => "custom"
#other mutations go here
}
答案 1 :(得分:0)
这篇文章中有两个误解:
除此之外,好的问题/答案,它帮助我重新回到我的特定问题;)