grok语法
1.或匹配
\"?(?:%{NUMBER:aa}|%{NOTSPACE:bb})
"11 得到的是aa = 11
"string 得到的是bb = string
2.自定义正则匹配
| 正则 | 含义 | 例子custom pattern | 数据 | 结果 |
|---|---|---|---|---|
| ? | ?是指配置前面的0个或0个以上 | HTTP (http(s)? | http | http |
| + | +是配置前面的1个或1个以上 | HTTP (http(s)+) | https | https |
| ?= | 配置前面为某某的 | 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
{}