Logstash 转换日志存储的日期MMM dd HH:mm:ss
我有一个自定义格式的日志文件,日期字段如下所示:Logstash 转换日志存储的日期MMM dd HH:mm:ss,logstash,Logstash,我有一个自定义格式的日志文件,日期字段如下所示: Dec 4 23:59:21 Nov 21 23:59:21 在我的日志存储配置中,我为过滤器设置了以下内容: 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
Dec 4 23:59:21
Nov 21 23:59:21
在我的日志存储配置中,我为过滤器设置了以下内容:
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时间戳(我正在从旧日志中回填它以进行测试)
如果我打开debug标志并输出到stdout,它会显示@timestamp
已被custom_timestamp
替换,但我会收到一条错误消息,告诉我无法导入它:
:exception=>java.lang.IllegalArgumentException: Invalid format: "Dec 4 23:59:21"
如何转换日期格式?结果表明我使用的示例是错误的。您不需要突变替换,配置如下:
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
}
这篇文章中有两个误解:
除此之外,这是一个很好的问题/答案,它帮助我回到了我的特定问题的轨道上;) 在我的回答中还是在问题中?我的答案让它对我有用,但如果它需要的话,我可以把它清除掉。“type”现在已经被弃用了