grok语法定义

grok语法定义

Logstash 内置了120种默认表达式,可以查看patterns,里面对表达式做了分组,每个文件为一组,文件内部有对应的表达式模式。下面只是部分常用的。

常用表达式

表达式标识名称详情匹配例子
USERNAME 或 USER用户名由数字、大小写及特殊字符(._-)组成的字符串1234、Bob、Alex.Wong
EMAILLOCALPART用户名首位由大小写字母组成,其他位由数字、大小写及特殊字符(_.±=:)组成的字符串。注意,国内的QQ纯数字邮箱账号是无法匹配的,需要修改正则windcoder、windcoder_com、abc-123
EMAILADDRESS电子邮件windcoder@abc.com、windcoder_com@gmail.com、abc-123@163.com
HTTPDUSERApache服务器的用户可以是EMAILADDRESS或USERNAME
INT整数包括0和正负整数0、-123、43987
BASE10NUM 或 NUMBER十进制数字包括整数和小数0、18、5.23
BASE16NUM十六进制数字整数0x0045fa2d、-0x3F8709
WORD字符串包括数字和大小写字母String、3529345、ILoveYou
NOTSPACE不带任何空格的字符串
SPACE空格字符串
QUOTEDSTRING 或 QS带引号的字符串“This is an apple”、‘What is your name?’
UUID标准UUID550E8400-E29B-11D4-A716-446655440000
MACMAC地址可以是Cisco设备里的MAC地址,也可以是通用或者Windows系统的MAC地址
IPIP地址IPv4或IPv6地址127.0.0.1、FE80:0000:0000:0000:AAAA:0000:00C2:0002
HOSTNAMEIP或者主机名称
HOSTPORT主机名(IP)+端口127.0.0.1:3306、api.windcoder.com:8000
PATH路径Unix系统或者Windows系统里的路径格式/usr/local/nginx/sbin/nginx、c:\windows\system32\clr.exe
URIPROTOURI协议http、ftp
URIHOSTURI主机windcoder.com、10.0.0.1:22
URIPATHURI路径//windcoder.com/abc/、/api.php
URIPARAMURI里的GET参数?a=1&b=2&c=3
URIPATHPARAMURI路径+GET参数/windcoder.com/abc/api.php?a=1&b=2&c=3
URI完整的URIhttps://windcoder.com/abc/api.php?a=1&b=2&c=3
LOGLEVELLog表达式Log表达式Alert、alert、ALERT、Error

日期时间表达式

表达式标识名称匹配例子
MONTH月份名称Jan、January
MONTHNUM月份数字03、9、12
MONTHDAY日期数字03、9、31
DAY星期几名称Mon、Monday
YEAR年份数字
HOUR小时数字
MINUTE分钟数字
SECOND秒数字
TIME 时间0:01:23
DATE_US美国时间10-01-1892、10/01/1892/
DATE_EU欧洲日期格式01-10-1892、01/10/1882、01.10.1892
ISO8601_TIMEZONEISO8601时间格式+10:23、-1023
TIMESTAMP_ISO8601ISO8601时间戳格式2016-07-03T00:34:06+08:00
DATE日期美国日期%{DATE_US}或者欧洲日期%{DATE_EU}
DATESTAMP完整日期+时间07-03-2016 00:34:06
HTTPDATEhttp默认日期格式03/Jul/2016:00:36:53 +0800

自定义grok表达式

语法解释:

%{HOSTNAME},匹配请求的主机名
%{TIMESTAMP_ISO8601:time},代表时间戳
%{LOGLEVEL},代表日志级别
%{URIPATHPARAM},代表请求路径
%{INT},代表字符串整数数字大小
%{NUMBER}, 可以匹配整数或者小数
%{UUID},匹配类似091ece39-5444-44a1-9f1e-019a17286b48
%{IP}, 匹配ip
%{WORD}, 匹配请求的方式
%{GREEDYDATA},匹配所有剩余的数据
(?([\S+]*)),自定义正则
\s*或者\s+,代表多个空格
\S+或者\S*,代表匹配多个字符
\w+或者\w*,代表匹配多个字母

大括号里面:xxx,相当于起别名
(?<class_info>\S+)或者(?<class_info>([\S+]*)), 自定义正则匹配多个字符

举例操作如下

列1:
[2019-08-22 12:25:51.441] [TSC_IHU] [ERROR] [c.e.c.t.i.t.s.IhuTsaUplinkServiceImpl] Activation/Bind uplink, query UserSession by Token failure!

grok调试如下:
\[%{TIMESTAMP_ISO8601:time}\]\s*%{DATA:thread}\s*\[%{LOGLEVEL:level}\]\s*%{GREEDYDATA:data}

在这里插入图片描述

列2:
2019-09-12 14:16:36.320+08:00 INFO 930856f7-c78f-4f12-a0f1-83a2610b2dfc Connector ip-192-168-114-244 [Mqtt-Device-1883-worker-18-1] com.sep.api.transformer.v1.MessageTransformer {"TraceID":"930856f7-c78f-4f12-a0f1-83a2610b2dfc","clientId":"51K4GA1059","username":"LB3X609880"}

%{TIMESTAMP_ISO8601:access_time}\s*%{LOGLEVEL:level}\s*%{UUID:uuid}\s*%{WORD:word}\s*%{HOSTNAME:hostname}\s*\[%{DATA:work}\]\s*(?<api>([\S+]*))\s*(?<TraceID>([\S+]*))\s*%{GREEDYDATA:message_data}


列3:
192.168.125.138 - - [12/Sep/2019:14:10:58 +0800] "GET /backend/services/ticketRemind/query?cid=&msgType=1&pageSize=100&pageIndex=1&langCode=zh HTTP/1.1" 200 91

grok调试如下:
%{IP:ip}\s*%{DATA:a}\s*\[%{HTTPDATE:access_time}\]\s*%{DATA:b}%{WORD:method}\s*%{URIPATH:url}%{URIPARAM:param}\s*%{URIPROTO:uri}%{DATA:c}%{NUMBER:treaty}%{DATA:d}\s*%{NUMBER:status}\s*%{NUMBER:latency_millis}

在这里插入图片描述

列4:
[08/Nov/2019:11:40:24 +0800] tc-com.net - - 192.168.12.58 192.168.12.58 192.168.15.135 80 GET 200 /geccess/services/capability/L6JN4255 ?pageIndex=1&pageSize=2000&vehicleType=0 21067 17

grok调试如下:
\[%{HTTPDATE:access_time}\] %{DATA:hostname} %{DATA:username} %{DATA:fwd_for} %{DATA:remote_hostname} %{IP:remote_ip} %{IP:local_ip} %{NUMBER:local_port} %{DATA:method} %{DATA:status} %{DATA:uri} %{DATA:query} %{NUMBER:bytes} %{NUMBER:latency_ms}

作者:走路带风的帅界扛把子
出处:http://www.cnblogs.com/zhangan/
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值