logstash - 使用Grok跳过部分消息或日志

标签 logstash logstash-grok

我刚刚开始将grok用于logstash,并且尝试使用grok过滤器解析我的日志文件。
我的日志行如下所示

03-30-2017 13:26:13 [00089] TIMER XXX.TimerLog: entType [organization], queueType [output], memRecno = 446323718, audRecno = 2595542711, elapsed time = 998ms



我只想捕获初始日期/时间戳,entType [organization]elapsed time = 998ms

但是,看起来我必须为该行中的每个单词和数字匹配模式。有什么办法可以跳过吗?我试图四处张望,但找不到任何东西。请帮助。

最佳答案

根据查尔斯·达菲(Charles Duffy)的评论。

有两种方法可以做到这一点:GREEDYDATA方式(?:.*):

grok {
  match => {"message" => "^%{DATE_US:dte}\s*%{TIME:tme}\s*\[%{GREEDYDATA}elapsed time\s*=\s*%{BASE10NUM}"
}

或者,告诉它忽略匹配项,然后在列表中查找下一个匹配项。
grok {
  break_on_match => false
  match => { "message" => "^%{DATE_US:dte}\s*%{TIME:tme}\s*\[" }
  match => { "message" => "elapsed time\s*=\s*%{BASE10NUM:elapsedTime}"
}

然后,您可以将日期和时间重新加入一个字段,并将其转换为时间戳。

关于logstash - 使用Grok跳过部分消息或日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43150897/

相关文章:

java - Logstash:有没有一种方法可以根据字段名称调用grok模板

elasticsearch - logstash/elasticsearch 无法解析日期字段尝试了日期格式 [dateOptionalTime] 和带有语言环境的时间戳编号

elasticsearch - 使用Logstash Grok进行数据类型转换

elasticsearch - 递归在logstash中的kv过滤器中不起作用

Elasticsearch基于公共(public)字段合并多个索引

csv - 从 CSV 文件输入数据到 logstash

elasticsearch - 日志存储@timestamp出现问题

mongodb - 错误 : mongodb. jdbc.MongoDriver 未加载。你确定你已经包含了正确的 jdbc 驱动程序

elasticsearch - 如何将其他jar传递到LogStash类路径

elasticsearch - 如何使用json过滤器将我的json日志文件存储到logstash