找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 4|回复: 0

Grok语法格式剖析

[复制链接]

37

主题

27

回帖

218

积分

管理员

积分
218
发表于 昨天 09:41 | 显示全部楼层 |阅读模式
Grok支持以正则表达式的方式提取所需要的信息,正则表达式又分两种,一种是内置的正则表达式,一种是自定义的正则表达式,例如:

内置的正则表达式方式,下面的写法表示从输入的消息中提取IP字段,并命名为sip;

%{IP:sip}

自定义的正则表达式,开始与终止符分别为(?与?),下面的写法表示获取除,以外的字符,并命名为log_type;

(?<log_type>[^,]+?)

Grok具体的语法参数如下:

%{SYNTAX:SEMANTIC}

`SYNTAX`代表匹配值的类型,例如,`0.11`可以`NUMBER`类型所匹配,`10.222.22.25`可以使用`IP`匹配;

`SEMANTIC`表示存储该值的一个变量声明,它会存储在`elasticsearch`当中方便`kibana`做字段搜索和统计,你可以将一个`IP`定义为客户端IP地址`client_ip_address`

例如:`%{IP:client_ip_address}`,所匹配到的值就会存储到`client_ip_address`这个字段里边,类似数据库的列名,也可以把event log中的数字当成数字类型存储在一个指定的变量当中,响应时间`http_response_time`;

Grok文本片段切分的案例一:

input {

stdin {}

}

filter {

grok {

match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:http_response_time}" }

}

}

output {

stdout {

codec => "rubydebug"

}

}

192.168.0.111 GET /index.html 13843 0.059



Grok文本片段切分的案例二:
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表