logstash grok mysql_logstash grok

grokedit

Version: 3.3.1

Released on: 2016-12-26

Changelog

解析任意文本并构造它:

Grok 是当前 最好的方式在logstash 来解析非结构化日志数据到一些结构化和可查询的

这个工具对于syslog logs是完美的, apache和其他webserver日志,mysqllogs 和通常的,

任何日志格式是对人可读的

Grok 基础:

Grok 通过结合文本模式来匹配你的日志

grok 模式是 %{SYNTAX:SEMANTIC}

语法是 模式的名字 会匹配你的文本,比如,3.44 通过NUMBER 模式来匹配

55.3.244.1 会通过一个IP模式匹配

语义是识别你给定的一个被匹配的文本片段。

比如,3.44 可以是一个事件的持续事件,这样你可以称为它一个简单的持续事件

此外,一个字符串55.3.244.1 可能客户端发出的请求

在上述的例子中,你获得的过滤器是这个样子:

%{NUMBER:duration} %{IP:client}

你可以增加一个数据类型转换到你的Grok 模式。

默认 所有的语义都保存为字符串。

如果你希望转一个语义的数据类型,比如改变一个字符串为一个整型 然后 在后面为目标数据类型。

比如 %{NUMBER:num:int} 转换num语义从一个字符串为一个整型。

例子:

55.3.244.1 GET /index.html 15824 0.043

The pattern for this could be:

%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}

更现实的例子,让我们从文件读取这些日志:

input {

file {

path => "/var/log/http.log"

}

}

filter {

grok {

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

}

}

正则表达式:

Grok 基于正则表达式,因此任何正则表达式是正确的在grok里。

正则表达式库是 Oniguruma

Custom Patterns

自定义模式:

有时候 logstash 没有你需要的模式,为此,你有一些选项:

1.你可以使用Oniguruma 语法用于捕获让你匹配的文本部分 保存它作为一个字段:

(?the pattern here)

比如,后缀日志有一个队列id 是10或者11字符的十六进制,你可以像这样轻易的捕获:

(?[0-9A-F]{10,11})

或者,你可以创建自定义模式文件:

创建一个目录 名为pattern 里面文件称为额外的(文件名不重要,但命名得有意义)

在该文件,写下你需要的模式

简介:

详情:

add_field

如果第一个filter是成功的,增加另外的任意的字段到这个事件。

字段名字可以是动态的包含事件的部分 使用 %{field}.

Example:

filter {

grok {

add_field => { "foo_%{somefield}" => "Hello world, from %{host}" }

}

}

# You can also add multiple fields at once:

filter {

grok {

add_field => {

"foo_%{somefield}" => "Hello world, from %{host}"

"new_field" => "new_static_value"

}

}

}

如果event 有字段 "somefield" == "hello" 这个过滤器,成功,会增加字段foo_hello 如果它是存在的,

add_tag

如果这个过滤器成功,增加任意的tags到这个事件。Tag 可以是动态的

包含事件的部分 使用%{field} syntax.

Example:

filter {

grok {

add_tag => [ "foo_%{somefield}" ]

}

}

# You can also add multiple tags at once:

filter {

grok {

add_tag => [ "foo_%{somefield}", "taggedy_tag"]

}

}

break_on_match:

在第一次匹配后终止,第一次成功匹配通过grok 会导致filter 完成。

如果你需要grok 尝试所有的模式,设置为false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值