加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

借助Logstash filter grok过滤日志文件

发布时间:2022-07-15 16:30:17 所属栏目:Linux 来源:互联网
导读:Logstash Filter Plugin Grok Logstash提供了一系列filter过滤plugin来处理收集到的log event,根据log event的特征去切分所需要的字段,方便kibana做visualize和dashboard的data analysis。所有logstash支持的event切分插件查看这里。下面我们主要讲grok切分
Logstash Filter Plugin Grok
 
Logstash提供了一系列filter过滤plugin来处理收集到的log event,根据log event的特征去切分所需要的字段,方便kibana做visualize和dashboard的data analysis。所有logstash支持的event切分插件查看这里。下面我们主要讲grok切分。
 
Grok基本介绍
 
1.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如下:
 
 
可以使用如下grok pattern来匹配这种记录
 
 
在logstash conf.d文件夹下面创建filter conf文件,内容如下
 
 
以下是filter结果
 
 
grok内置的默认类型有很多种,读者可以自行查看。
 
2.使用自定义类型更多时候logstash grok没办法提供你所需要的匹配类型,这个时候我们可以使用自定义。
 
第一种,直接使用oniguruma语法去匹配文本片段,语法如下
 
 
假设你需要匹配的文本片段为一个长度为10或11的十六进制的值,使用下列语法可以获取该片段,并把值赋予queue_id
 
 
第二种,创建自定义pattern文件
 
创建文件夹patterns,在此文件夹下面创建一个文件,文件名随意,eg: postfix
 
在logstash conf.d文件夹下面创建filter conf文件,内容如下
 
 
匹配结果如下:
 
 
推荐使用grokdebugger来写匹配模式,输入event log record,再逐步使用pattern微调切分,下方会根据你所写的模式将输入切分字段。
 
 
 
3.其他常用内置方法
 
add_field: 当pattern匹配切分成功之后,可以动态的对某些字段进行特定的修改或者添加新的字段,使用%{fieldName}来获取字段的值Exmaple:
 

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读