6 Star 72 Fork 28

JustryDeng / notebook

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
[03]logstash Grok语法正则.md 2.23 KB
一键复制 编辑 原始数据 按行查看 历史
JustryDeng 提交于 2024-04-18 11:06 . logstash Grok语法正则

logstash Grok语法正则

简述

Logstash的Grok可以使蹩脚的、无结构,杂乱无章的的日志内容结构化(即:logstash通过Grok语法,从蹩脚的、无结构,杂乱无章的日志中抓取到结构化的日志信息)

注:对于蹩脚的、无结构,杂乱无章的日志,logstash使用Grok来实现结构化;对于已经是结构化的数据(如json),logstash也有内置的解析器支持直接解析

Grok语法正则

参考here

#特殊匹配
(%{GREEDYDATA:json1}|-)  匹配所有数据
%{QS:agent}   匹配"-"数据

# 匹配规则
LogFile="%{WORD:logfile}";Time="%{DATA:time}";SIP="%{IPV4:sip}";
#关键字
WORD   匹配单词
DATA     匹配任意数据
IPV4       匹配IP
NUMBER  匹配数字
BASE10NUM     匹配10进制的数字
URIPATHPARAM  匹配url
# 关键字实例
%{NUMBER:duration} — 匹配浮点数
%{IP:client} — 匹配IP
# 注:如果(?(xxx))不生效,可以试试(?<class_info>(xxx))
(?([\S+]*)),自定义正则
# (?<class_info>(xxx)) 中的 xxx 即为正则表达式
# 示例1:同时匹配ERROR或者FATAL日志级别的日志: (?<class_info>(ERROR|FATAL))
# 示例2:自定义正则匹配多个字符:(?<class_info>([\S+]*))
(?<class_info>(xxx)) # xxx 即为正则表达式
\s*或者\s+,代表多个空格
\S+或者\S*,代表多个字符
大括号里面:xxx,相当于起别名
%{UUID},匹配类似091ece39-5444-44a1-9f1e-019a17286b48
%{WORD}, 匹配请求的方式
%{GREEDYDATA},匹配所有剩余的数据
%{LOGLEVEL:loglevel} ---- 匹配日志级别
自定义类型

注:对于自定义的正则匹配出来的结果重命名,可以先将自定义正则写在patterns里面,然后在grok引用代表该正则的key,通过%{代表正则的key:重命名}即可实现对正则匹配内容的命名,如%{BirthDayRegx:ShengRi}

相关资料

1
https://gitee.com/JustryDeng/notebook.git
git@gitee.com:JustryDeng/notebook.git
JustryDeng
notebook
notebook
master

搜索帮助