grok语法

780 阅读1分钟

grok语法

1.或匹配

\"?(?:%{NUMBER:aa}|%{NOTSPACE:bb})

"11 得到的是aa = 11

"string 得到的是bb = string

2.自定义正则匹配

正则含义例子custom pattern数据结果
??是指配置前面的0个或0个以上HTTP (http(s)?httphttp
++是配置前面的1个或1个以上HTTP (http(s)+)httpshttps
?=配置前面为某某的RUNA runoob(?=%{NUMBER:num})runoob123{ num: 123}

3.可选匹配

?匹配至少0个或0个以上

custom pattern: DPORT (?:%{SPACE}dstport=%{NUMBER:dst-port})?

grok pattern: aa=11%{DPORT} name=jack

#样例数据1:  
#因为有dstport字段,所以匹配出来
#aa=11 dstport=123 name=jack  

{
  "dst-port": "123"
}

#样例数据2,因为没有dstport字段,所以不匹配:
aa=11 name=jack

{}