logstash的grok提取中括号关键词后面的数据到指定字段

Posted zhangphil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了logstash的grok提取中括号关键词后面的数据到指定字段相关的知识,希望对你有一定的参考价值。

logstash的grok提取中括号关键词后面的数据到指定字段

比如,现在有一段数据,

[DEBUG] [TASKID:1a-2b_3c] [DATA]

需要提取[TASKID:***] 里面的*数据,也即本例的 1a-2b_3c ,然后放到指定的字段task_id里面。在grok里面写正则:

(?<task_id>(?<=\\[TASKID:).*?(?=\\]))

在grok debugger里面运行:

总结:

(?<result>(.*)(?=myend)/?)  
提取myend之前的数据

(?<result>(?=mybegin)(.*)/?)  
提取mybegin之后的数据

(?<result>(?<=mybegin).*?(?=myend))  
提取mybegin和myend之间的数据,不包含mybegin和myend

(?<result>(taga).*?(?=tagb))  
提取包含taga但不包含tagb的数据

(?<result>(?<=taga).*?(tagb))  
提取内容不包含taga但包含tagb

(?<result>(taga).*?(tagb|tagc))  
提取以taga开头,以tagb或tagc结尾的、所有包含头尾的数据

(?<result>(taga).*?(?=(tagb|tagc)))  
提取以taga开头,以tagb或tagc结尾的不包含头尾的数据


以上结果都最终存放到result字段里面

以上是关于logstash的grok提取中括号关键词后面的数据到指定字段的主要内容,如果未能解决你的问题,请参考以下文章

logstash grok match 对等于号,和中括号做筛选

logstash grok解析

Logstash的filter插件-Grok

filebeat + logstash 对message提取指定字段

logstash grok使用案例

grok表达式