阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Logstash filter grok过滤日志文件

130次阅读
没有评论

共计 1263 个字符,预计需要花费 4 分钟才能阅读完成。

Logstash Filter Plugin Grok

Logstash 提供了一系列 filter 过滤 plugin 来处理收集到的 log event,根据 log event 的特征去切分所需要的字段,方便 kibana 做 visualize 和 dashboard 的 data analysis。所有 logstash 支持的 event 切分插件查看这里。下面我们主要讲 grok 切分。

Grok 基本介绍

1.Grok 使用文本片段切分的方式来切分日志事件,语法如下:

 使用 Logstash filter grok 过滤日志文件

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

SEMANTIC 表示存储该值的一个变量声明,它会存储在 elasticsearch 当中方便 kibana 做字段搜索和统计,你可以将一个 IP 定义为客户端 IP 地址 client_ip_address,eg:%{IP:client_ip_address},所匹配到的值就会存储到 client_ip_address 这个字段里边,类似数据库的列名,也可以把 event log 中的数字当成数字类型存储在一个指定的变量当中,比如响应时间 http_response_time,假设 event log record 如下:

 使用 Logstash filter grok 过滤日志文件

可以使用如下 grok pattern 来匹配这种记录

 使用 Logstash filter grok 过滤日志文件

在 logstash conf.d 文件夹下面创建 filter conf 文件,内容如下

 使用 Logstash filter grok 过滤日志文件

以下是 filter 结果

 使用 Logstash filter grok 过滤日志文件

grok 内置的默认类型有很多种,读者可以自行查看。

2. 使用自定义类型 更多时候 logstash grok 没办法提供你所需要的匹配类型,这个时候我们可以使用自定义。

第一种,直接使用 oniguruma 语法去匹配文本片段,语法如下

 使用 Logstash filter grok 过滤日志文件

假设你需要匹配的文本片段为一个长度为 10 或 11 的十六进制的值,使用下列语法可以获取该片段,并把值赋予 queue_id

 使用 Logstash filter grok 过滤日志文件

第二种,创建自定义 pattern 文件

创建文件夹 patterns,在此文件夹下面创建一个文件,文件名随意,eg: postfix

 使用 Logstash filter grok 过滤日志文件

然后将 patterns file 引入,告诉 logstash 你的自定义类型文件,以下面的 event log record 为例子:

 使用 Logstash filter grok 过滤日志文件

在 logstash conf.d 文件夹下面创建 filter conf 文件,内容如下

 使用 Logstash filter grok 过滤日志文件

匹配结果如下:

 使用 Logstash filter grok 过滤日志文件

推荐使用 grokdebugger 来写匹配模式,输入 event log record,再逐步使用 pattern 微调切分,下方会根据你所写的模式将输入切分字段。

 使用 Logstash filter grok 过滤日志文件

 使用 Logstash filter grok 过滤日志文件

3. 其他常用内置方法

add_field: 当 pattern 匹配切分成功之后,可以动态的对某些字段进行特定的修改或者添加新的字段,使用 %{fieldName}来获取字段的值 Exmaple:

 使用 Logstash filter grok 过滤日志文件

 使用 Logstash filter grok 过滤日志文件

如果 somefield=dad,logstash 会将 foo_dad 新字段加入 elasticsearch,并将值 Hello world, dad 赋予该字段

add_tag: 为经过 filter 或者匹配成功的 event 添加标签 Example:

 使用 Logstash filter grok 过滤日志文件

 使用 Logstash filter grok 过滤日志文件

马哥想听你动人的成长故事,所以发起了一个征文活动。

点击阅读原文或长按二维码添加我的个人微信,立刻了解详情。

 使用 Logstash filter grok 过滤日志文件

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-12-03发表,共计1263字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中