Logstash Date过滤器匹配无年份日期触发dateparsefailure问题求解
配置疏漏点
- 12小时制标识符使用错误:你当前用的
HH代表24小时制时间格式(取值范围023),但你的日期里带`PM/AM`标识,属于12小时制,需要替换为`hh`(取值范围112)才能正确匹配。 - 秒和毫秒的分隔符缺失:你的原始日期格式中秒和毫秒用
.分隔,但匹配规则里ss:S没有包含这个分隔符,导致格式匹配失败,需要修正为ss.S。 - 未显式指定AM/PM标识的本地化规则:
a标识符用于匹配上午/下午标记,该标记的识别和系统locale强相关,若你的运行环境locale不是英文,会无法识别PM/AM,需要显式指定locale为英文环境。
修正后的配置
date { match => ["timestamp", "MM/dd hh:mm:ss.S a"] target => "timestamp" locale => "en_US" }
补充说明:date过滤器默认会给缺失年份的日期自动补充当前系统年份,不需要额外配置,默认行为符合你的需求。
内容的提问来源于stack exchange,提问作者Kamikaze K
相关产品推荐
相关产品推荐

