<pre name="code" class="html">grok:
解析任意文本并构造它:
Grok 是当前最好的方式在logstash 解析蹩脚的非结构化日志数据 到一些结构化的可查询的。
这个工具是完美的对于syslog logs, apache和其他webserver logs,mysqllogs,在一般情况下,任何日志格式
通常对于人是友好的而不是对于电脑
Logstash 有120种模式默认,你可以找到它们在:https://github.com/logstash-plugins/logstash-patterns-
core/tree/master/patterns.
Grok Basics:
Grok 通过结合文本模式来匹配你的日志
语法对于一个grok 是 %{SYNTAX:SEMANTIC}
语法是 模式的名字会匹配你的文本,比如,3.44 会通过NUMBER 模式匹配和55.3.244.1 通过IP模式匹配。
语法是你如何匹配:
SEMANTIC (语义)是标识 你给到一块文本被匹配。
比如,3.44 可能是一个一个事件的持续事件,因此你可以简单的调用它。
此外, 一个字符串 55.3.244.1 可能识别客户端发出的请求。
在上述例子中,你的grok filter 可以看起来像这样:
%{NUMBER:duration} %{IP:client}
你可以添加一个数据类型转换成你的grok 模式。默认的 所有的语义都保存作为字符串.
如果你希望 转换一个语义的数据类型,比如改变一个字符串为一个整型 然后将其后缀为目标数据类型。
比如 %{NUMBER:num:int} 会转换num语义从一个字符串到一个整型,当前只支持转换是int和float
例子: 这个质疑的语法和语义,我们可以把有用的字段从一个简单的日志像这个虚构的http 请求日志:
55.3.244.1 GET /index.html 15824 0.043
匹配模式:
%{IP:client} %{WORD:method} %{URIPATHPARAM:requ
grok 官方文档
最新推荐文章于 2024-03-19 14:07:29 发布