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 对等于号,和中括号做筛选