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

x33g5p2x  于2022-06-08 转载在 Logstash  
字(0.6k)|赞(0)|评价(0)|浏览(658)

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字段里面

相关文章