Logstash是否存在匹配Wed Apr 01 23:29:47.834 2020格式的Grok pattern?
Logstash Grok 匹配指定日期格式方案
匹配模式
你提到的Wed Apr 01 23:29:47.834 2020格式属于服务端日志常见的英文日期格式,有两种匹配方案可选:
- 直接使用Grok内置模式:
%{HTTPDATE:log_timestamp},该内置规则原生适配你给出的日期格式 - 自定义精确匹配规则:
%{DAY:week_day} %{MONTH:month} %{MONTHDAY:month_day} %{TIME:time} %{YEAR:year},可以拆分提取日期的各个字段单独使用
Logstash 配置示例
直接在filter段添加如下配置即可完成解析,还可以额外配置日期转换将匹配到的时间替换为日志的官方时间字段:
filter { grok { match => { "message" => "%{HTTPDATE:log_timestamp}" } } # 可选:将字符串格式的日期转为Logstash标准时间类型 date { match => [ "log_timestamp", "EEE MMM dd HH:mm:ss.SSS yyyy" ] target => "@timestamp" locale => "en_US" } }
注意:如果Logstash运行在非英文系统环境下,必须添加
locale => "en_US"配置,否则会无法识别英文的星期、月份缩写导致时间转换失败。
验证方式
你可以直接用Logstash自带的Grok Debugger工具测试匹配效果,输入待解析的日志行和上述pattern即可确认匹配是否正确。
内容的提问来源于stack exchange,提问作者Clies
相关产品推荐
相关产品推荐

