我正在尝试使用以下日期过滤器将字符串转换为日期,但似乎无法正常工作。
输入数据样本(字符串)-2020年1月20日星期一格林尼治标准时间
我首先使用mutate gsub移除GMT,该GMT呈现以下字符串输出-
2020年1月20日星期一09:20:35
我的gsub mutate过滤器看起来像这样-
mutate { gsub => [ "TimeStamp", "GMT", "" ] }
现在,我正在使用日期过滤器将gsub输出转换为日期格式,但它似乎不起作用-
date {
match => [ "TimeStamp", "EEE MMM dd HH:mm:ss yyyy" ]
target => "TimeStamp"
locale => "en"
}
我也曾尝试跟随但没有成功-
date {
match => [ "TimeStamp", "EEE\sMMM\sdd\sHH:mm:ss\s+yyyy" ]
target => "TimeStamp"
timezone => "Etc/GMT"
locale => "en"
}
最佳答案
日期格式应为
MMM dd HH:mm:ss yyyy
也许您必须在一年之前添加一些额外的空间(看起来您的日志中有它们)。
代替EEE(缩写为工作日的名称),您需要使用MMM(缩写为月的名称)。
关于elasticsearch - 日期格式在Logstash中无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59841879/