专栏首页北京马哥教育使用Logstash filter grok过滤日志文件

使用Logstash filter grok过滤日志文件

“Eason,企业一线运维实战者,马哥教育原创作者联盟成员,热爱分享Linux应用技术的感想和原创知识。”

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

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

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

匹配结果如下:

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

3.其他常用内置方法

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

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

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

本文分享自微信公众号 - 马哥Linux运维(magedu-Linux),作者:Eason

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Corosync + Pacemaker 搭建高可用MariaDB服务

    实验描述 本实验的目的是为了通过手动配置corosync配置文件,实现MariaDB服务的高可用,集群心跳传递使用组播方式。 三个节点的主机名分别为:node5...

    小小科
  • 开源实时日志分析ELK平台部署

    日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务...

    小小科
  • 文本过滤之grep,egreo及fgrep 三剑客及正则表达式

    关于grep,egrep以及fgrep,是我们linux服务器中常用的文本过滤工具。掌握好这三个工具并结合正则表达式,对我们日后的运维工作有很大的帮助。 1.g...

    小小科
  • 从0到1实现一个Android路由(1)——初探路由

    什么是路由?最初接触路由是在大学计算机网络中,网络层IP报文传输会涉及一个路由表的概念,路由表由源IP、目的IP组成,起始就是一个映射表。Android路由也是...

    用户1108631
  • 全国首个《等保2.0体系互联网合规实践白皮书》来了

    该白皮书由腾讯公司联合中国电子科技集团公司第十五研究所(信息产业信息安全测评中心)、深圳市网安计算机安全检测技术有限公司共同发布。这是国内首份对等保2.0安全管...

    腾讯安全
  • “西湖论剑”分论坛亮点频现 八大主题论坛精彩上演

    2018年4月26日-28日,以“新时代,新安全,新力量”为主题的“西湖论剑•网络安全大会”(以下简称“西湖论剑”)在杭州国际博览中心隆重举行。本届“西湖论剑”...

    安恒信息
  • SAP新一代全栈开发工具:SAP Business Application Studio

    SAP前端开发技术的进化方向,从SAP GUI,到能在浏览器里运行的ABAP Webdynpro / WebClient UI,再到现在仍然没有停止进化的Fio...

    Jerry Wang
  • 【送资料包】数据隐私保护将从何入手?

    在欧盟,关于保护数据的规定和标准十分严格。一般数据保护条例(GDPR,General Data Protection Regulation)于2016年5月推出...

    鸿鹄实验室
  • 微软超融合私有云测试21-SCOM2016部署之安装SCOM管理服务器

    在上一篇文章中,我们将SCOM2016管理服务器所需的必备组件与SQL Server数据库已经安装完毕,下面我们开始正式安装SCOM管理服务器。

    SuperDream
  • ERROR: invalid byte sequence for encoding "UTF8": 0x00

    1、使用kettle批量导入数据的时候,数据出现了下面的错误。ERROR: invalid byte sequence for encoding "UTF8":...

    别先生

扫码关注云+社区

领取腾讯云代金券