grok是一种采用组合多个预定义的正则表达式,用来匹配分割文本并映射到关键字的工具。通常用来对日志数据进行预处理。
graylog 集成了 grok ,可以使用grok表达式 对日志进行 拆分匹配。
1.grok调试网址 :http://grokconstructor.appspot.com/ (这个是外国的网址,需要科学上网进行浏览。)
进入grok调试地址后 ,点击 Matcher 按钮, 进入调试界面。点击 randomExample 可以 查看 教程案例。
这个是 可以写 自定义的表达式, 上面是勾选的grok 相关联的表达式库 ,可以将具体的表达式 粘贴出来 ,自定义表达式规则。
然后 在这一栏 可以使用自定义的表达式,并制定别名(注意不要和 已存在的表达式名称冲突。)
组合需要注意的点: 两个匹配之间的空格 可能需要 可能 不需要 ,特殊字符需要部分 转义,注意组合最后是否有空格 或者制表符。
下面 给出 一个 组合 eg:
DDOS %{INT:seqno}\|%{IPV4:ip_dst_addr}\|%{NDATESTAMP:timestamp}\|%{NDATESTAMP:endtime}\|%{NWORD:type}\|%{INT:pktbytes}\|%{INT:pktnum}\|
2. 上面表达式测试 通过后吗,就可以将 自定义的表达式 加入 graylog 中了
在表达式中添加 grok 表达式 的流程:(科学上网有可能导致 你刚刚搭建的 graylog 访问不了,如果完成了 grok 的页面调试,就可以 停止 科学上网了)
System->>grok Pattern->>Create Pattern
点击 Save 保存 ,及 创建一条表达式。
具体 使用:
首先 查询出 一条信息 ,选中 需要 匹配的字段 ,点击 Grok pattern ,将进入如下界面:
右侧 的 Filter pattern 列表中 将会出现 你刚刚添加的表达式,点击 Add 相关联的 表达式 会被添加到 左侧的 Grok pattern 中,可以点击 下方的 测试 看看 自己的表达式 是否能 成功 匹配到信息。(之后 graylog 在收到的信息 就会 通过 你添加的 这条 过滤,将 该字段 按过滤的条件进行分解。)