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

HTTPDUSER

Apache服務器的用戶

可以是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

標准UUID

 

550E8400-E29B-11D4-A716-446655440000

MAC

MAC地址

可以是Cisco設備里的MAC地址,也可以是通用或者Windows系統的MAC地址

 

IP

IP地址

IPv4或IPv6地址

127.0.0.1、FE80:0000:0000:0000:AAAA:0000:00C2:0002

HOSTNAME

IP或者主機名稱

   

HOSTPORT

主機名(IP)+端口

 

127.0.0.1:3306、api.windcoder.com:8000

PATH

路徑

Unix系統或者Windows系統里的路徑格式

/usr/local/nginx/sbin/nginx、c:\windows\system32\clr.exe

URIPROTO

URI協議

 

http、ftp

URIHOST

URI主機

 

windcoder.com、10.0.0.1:22

URIPATH

URI路徑

 

//windcoder.com/abc/、/api.php

URIPARAM

URI里的GET參數

 

?a=1&b=2&c=3

URIPATHPARAM

URI路徑+GET參數

/windcoder.com/abc/api.php?a=1&b=2&c=3

 

URI

完整的URI

 

https://windcoder.com/abc/api.php?a=1&b=2&c=3

LOGLEVEL

Log表達式

Log表達式

Alert、alert、ALERT、Error

 

日期時間表達式

表達式標識

名稱

匹配例子

MONTH

月份名稱

Jan、January

MONTHNUM

月份數字

03、9、12

MONTHDAY

日期數字

03、9、31

DAY

星期幾名稱

Mon、Monday

YEAR

年份數字

 

HOUR

小時數字

 

MINUTE

分鍾數字

 

SECOND

秒數字

 

TIME

時間

00:01:23

DATE_US

美國時間

10-01-1892、10/01/1892/

DATE_EU

歐洲日期格式

01-10-1892、01/10/1882、01.10.1892

ISO8601_TIMEZONE

ISO8601時間格式

+10:23、-1023

TIMESTAMP_ISO8601

ISO8601時間戳格式

2016-07-03T00:34:06+08:00

DATE

日期

美國日期%{DATE_US}或者歐洲日期%{DATE_EU} |

DATESTAMP

完整日期+時間

07-03-2016 00:34:06

HTTPDATE

http默認日期格式

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*,代表多個字符
大括號里面:xxx,相當於起別名

(?<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 DispatcherConnector ip-192-168-114-244 [Mqtt-Device-1883-worker-18-1] com.ericsson.sep.dispatcher.api.transformer.v1.MessageTransformer {"TraceID":"930856f7-c78f-4f12-a0f1-83a2610b2dfc","clientId":"5120916600003466K4GA1059","username":"LB37622Z3KX609880"}

%{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.g-netlink.net - - 192.168.122.58 192.168.122.58 192.168.125.135 80 GET 200 /geelyTCAccess/tcservices/capability/L6T7944Z0JN427155 ?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}

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM