Logstash的filter插件在7.5.1版本中,有多达46种。介绍filter插件的官网地址,感兴趣的话可以自行研究,点此跳转

本文主要讲解filter插件中的grok。通过在filter中使用grok,可以把日志中的关键字快速匹配出来。

grok主要有两部分:自定义正则表达式和系统预定义的模式表达式。

Grok Debugger在线匹配正则

推荐一款在线匹配正则的网站——Grok Debugger,点此跳转

该网站界面如下:

在上面的框输入你要匹配的字符串,下面的框输入正则表达式,在最下面就会自动显示匹配结果。

1. grok自定义正则匹配

grok自定义正则匹配的语法:(?<字段名>正则表达式),示例如下。

正则化的内容是截取"uuid=“和”%或者&&&&"中间的字段。

再来几组正则化感受下,正则化各语言差不多,写得多了自然熟悉了

(?<temMsg>(.*)(?=Report)/?) 获取Report之前的字符
(?<temMsg>(?=Report)(.*)/?) 获取Report之后的字符
(?<temMsg>(?<=report).*?(?=msg)) 截取report和msg之间的值 不包含report和msg本身
(?<temMsg>(report).*?(?=msg)) 截取包含report但不包含msg
(?<temMsg>(?<=report).*?(msg)) 截取不包含report但包含msg
(?<temMsg>(report).*?(msg|request)) 输出以report开头,以msg或者以request结尾的所有包含头尾信息
(?<temMsg>(report).*?(?=(msg|request))) 输出以report开头,以msg或者以request结尾的不包含头尾信息

2. grok模式表达式

grok模式表达式的语法是%{模式类型:变量名},如%{IP :ip_from}将匹配一段IP地址,并且命名为ip_from。其中,变量名不是必须的。示例如下:

为了方便理解,下面列举一些常用的grok模式,更多grok模式点此跳转github链接。常用的模式匹配,都在这个链接里的"grok-patterns"子目录。

IP —— 匹配IP地址,IPv4和IPv6都可以

// ipv4如:127.0.0.1
// ipv6如:FB21:1233:55B2:AA44:12B8:6761:890F:AB31

MAC —— MAC地址

// 如:08:00:20:0A:8C:6D

DATA —— 相当于正则的.*?

// . 匹配除\n和空格以外的任何字符
// * 相当于0-正无穷
// ? 为懒惰模式,匹配到第一个就结束// 实测DATA用在正则化的最后是无法匹配到任何字符的,这个时候可以考虑用WORD等代替。

WORD —— 等价于 \b\w+\b,匹配包含数字和大小写的字符串

// 如:hello_world、String、 I_love_code

QUOTEDSTRING 或 QS —— 带引号的字符串

// 如 "hey, girls!"

EMAILADDRESS —— 电子邮件地址

// 如:admin@example.com

EMAILLOCALPART —— 匹配电子邮件的用户名部分

/*
* 首位由大小写字母组成,其他位由数字、大小写及特殊字符(_.+-=\:\)组成的字符串
* 注意,国内的QQ纯数字邮箱账号是无法匹配的// 如:admin@example.com 匹配 admin

USERNAME 或 USER —— 匹配用户名

/*
* 由数字、大小写及特殊字符(._-)组成的字符串
*/// 如:admin、ec2-user

数字类型格式

INT         //正整数、0、负整数都可,如 -1234、0、12412
BASE10NUM 或 NUMBER  //十进制数,包括整数和小数,如: 345、 3.1415926
BASE16NUM   //十六进制整数,如:0xa12F、0xDc34
BASE16FLOAT //十六进制数字,包括整数和小数

UUID —— 标准唯一识别码

// 如: 9584dba3-fe26-418d-8625-2d71a5d78049

主机名称格式

HOSTNAME      //主机名,如www.baidu.com
IPORHOST        // IP或者主机名称
HOSTPORT        //主机名+端口号,127.0.0.1:8080

PATH —— 路径格式的字符串

// 如: /home/ec2-user/docker_config

日期时间表达式

MONTH       //月份名称,如:Jan、January
MONTHNUM    //月份数字,如:06、1、12
MONTHDAY    //日期数字,如:15、29、31、09
DAY         //星期几,如:Tues、Friday
YEAR        //年份数字,如:2017、1995
HOUR        //小时数字,如:24、13
MINUTE      //分钟数字,如:13、59
SECOND      //秒钟数字,如:12、54
TIME        //时间,如:12:34:12
DATE_US     //美国日期格式,如:10-15-1982、10/15/1982
DATE_EU     //欧洲日期格式,如:15-10-1982、15.10.1982
TIMESTAMP_ISO8601 //ISO8601时间戳格式,如:2016-07-03T00:34:06+08:00

LOGLEVEL —— 日志等级

// 如:Info、Error、Warning

最后,限于笔者经验水平有限,欢迎读者就文中的观点提出宝贵的建议和意见。如果想获得更多的学习资源或者想和更多的是技术爱好者一起交流,可以关注我的公众号『全菜工程师小辉』后台回复关键词领取学习资料、进入后端技术交流群和程序员副业群。同时也可以加入程序员副业群Q群:735764906 一起交流。

轻松掌握Logstash的grok匹配相关推荐

  1. logstash grok匹配

    2019独角兽企业重金招聘Python工程师标准>>> Grok debug请访问grok debugger 中文网 ### Logstash grok 匹配 JAVACLASS ( ...

  2. Logstash 配置文件 Grok 语法

    Logstash 配置文件  Grok 语法 Grok 是啥? Grok 是一种采用组个多个预定义的正则表达式.用来匹配分割文本,并且映射到关键字的工具.主要用来对日志数据进行预处理.Logstash ...

  3. Logstash的grok正则匹配自定义

    文章目录 前言 一.grok-patterns 二.自定义grok-patterns(正则匹配) 1.自定义格式 2.组合现有patterns匹配时间 3.组合现有patterns匹配中文 4.组合现 ...

  4. logstash grok mysql_【Logstash系列】使用Redis并自定义Grok匹配

    之前提到,用RabbitMQ作为消息队列.但是这个东西实在太过高精尖,不懂erlang不会调优的情况下,很容易挂掉--基本上我这里试验结果跑不了半小时日志传输就断了.所以改用简单易行的redis来干这 ...

  5. 日志分析logstash插件-grok详解

    一般系统或服务生成的日志都是一大长串.每个字段之间用空格隔开.logstash在获取日志是整个一串获取,如果把日志中每个字段代表的意思分割开来在传给elasticsearch.这样呈现出来的数据更加清 ...

  6. logstash日志用于匹配多行日志

    2019独角兽企业重金招聘Python工程师标准>>> logstash显示单行日志很方便,但是多行日志怎么搞. input {file {type =>"xxxxx ...

  7. 使用Logstash filter grok过滤日志文件

    Logstash提供了一系列filter过滤plugin来处理收集到的log event,根据log event的特征去切分所需要的字段,方便kibana做visualize和dashboard的da ...

  8. logstash filter grok 用法

    在elk+filebeat都安装好,且明白了基本流程后,主要的就是写logstash的filter了,以此来解析特定格式的日志 logstash的filter是用插件实现的,grok是其中一个,用来解 ...

  9. Logstash filter grok正则的使用及介绍

    一.Logstash企业级插件案例(EFLK架构) 1.常见的插件概述 gork插件:Grok是将⾮结构化⽇志数据解析为结构化和可查询的好⽅法.底层原理是基于正则匹配任意 ⽂本格式.该⼯具⾮常适合sy ...

  10. logstash之grok正则表达式语法

    logstash过滤器插件filter详解及实例 1.logstash过滤器插件filter 1.1.grok正则捕获 grok是一个十分强大的logstash filter插件,他可以通过正则解析任 ...

最新文章

  1. Java的CountDownLatch和CyclicBarrier的理解和区别
  2. pytorch模型加载测试_使用Pytorch实现物体检测(Faster R-CNN)
  3. 配置策略路由(PBR)
  4. 计算机考研 电路,模拟电路 请高手来帮忙
  5. IDEA_Debug_checks references injected by intellilang plugin
  6. 一个好用的查看Angular应用ngrx状态的Chrome扩展:Redux devTools
  7. pygame重新开始_Pygame(十八)音乐
  8. 剑指offer——面试题8:旋转数组的最小数字
  9. C# WinForm捕获全局异常
  10. Iconfont-阿里巴巴矢量图标库
  11. Go基础:延迟调用defer、异常处理
  12. DataGridView显示时间格式
  13. 企业自建私有云-openstack-介绍
  14. 谷歌hosts laod
  15. [敏捷开发培训] 燃尽图(Burndown Chart)
  16. 后代选择器和子选择器
  17. 虚拟局域网软件开源_用于云和虚拟化的事实上的标准开源软件包括Linux
  18. JavaScript - this指向以及强行改变this指向
  19. 服务注册Service Registration
  20. ipfs分布式存储能否拯救互联网杀熟

热门文章

  1. Bootstrap实战(第一弹:栅格实现5等分或8等分)
  2. 根轨迹 matlab 怎么画一半儿,现有 1020 个西瓜,第一天卖一半多两个,以后每天都卖剩下的一半多两个,编程计算几天后能把所有西瓜都卖完? 请编程实现_学小易找答案...
  3. qq的云消息服务器,20 万台 QQ 服务器全面上云
  4. thinkphp5中带参数跳转
  5. java 内存回收参数_JVM内存模型及垃圾回收的研究总结
  6. 2021-11-06大数据学习日志——数据埋点+网络爬虫——数据提取
  7. 以退为进还是被逼无奈?创始人王劲离职后,景驰科技该何去何从?
  8. 《SteamVR2.2.0开发指南》(Yanlz+Unity+XR+SteamVR+OpenXR+OpenVR+Valve+VIVE+Oculus+Interaction+VR+立钻哥哥++ok++)
  9. python技术--Linux基础01
  10. 微软出品的Python小白神器,真香!