Logstash日志文件中的可选字段

时间:2015-05-06 17:30:52

标签: regex logstash logstash-grok

我尝试使用grok解析日志文件

日志文件的每一行都有以逗号分隔的字段:

13,home,ABC,Get,,Private, Public,1.2.3 ecc...

我正在使用这样的匹配: match => [ "message", "%{NUMBER:requestId},%{WORD:ServerHost},%{WORD:Service}, ...

我的问题是:我可以允许选择字段吗? 有时,某些文件可能为空,,

是否存在与此2.3.5之类的字符串匹配的模式? (一种版本号)

1 个答案:

答案 0 :(得分:57)

在它的基础上,grok基于正则表达式,因此您可以使用()?包围模式以使其成为可选模式 - 例如(%{NUMBER:requestId})?,

如果没有适合您需要的grok模式,您可以随时创建一个命名提取,如下所示:(?<version>[\d\.]+)将提取到版本中,该字符串中包含任意数量的数字和点。