Logstash 內置了120種默認表達式,能夠查看patterns,裏面對錶達式作了分組,每一個文件爲一組,文件內部有對應的表達式模式。下面只是部分經常使用的。php
表達式標識css |
名稱nginx |
詳情windows |
匹配例子api |
---|---|---|---|
USERNAME 或 USER服務器 |
用戶名app |
由數字、大小寫及特殊字符(._-)組成的字符串ui |
123四、Bob、Alex.Wongurl |
EMAILLOCALPARTspa |
用戶名 |
首位由大小寫字母組成,其餘位由數字、大小寫及特殊字符(_.+-=:)組成的字符串。注意,國內的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、-12三、43987 |
BASE10NUM 或 NUMBER |
十進制數字 |
包括整數和小數 |
0、1八、5.23 |
BASE16NUM |
十六進制數字 |
整數 |
0x0045fa2d、-0x3F8709 |
WORD |
字符串 |
包括數字和大小寫字母 |
String、352934五、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.一、FE80:0000:0000:0000:AAAA:0000:00C2:0002 |
HOSTNAME |
IP或者主機名稱 |
||
HOSTPORT |
主機名(IP)+端口 |
127.0.0.1:330六、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 |
月份數字 |
0三、九、12 |
MONTHDAY |
日期數字 |
0三、九、31 |
DAY |
星期幾名稱 |
Mon、Monday |
YEAR |
年份數字 |
|
HOUR |
小時數字 |
|
MINUTE |
分鐘數字 |
|
SECOND |
秒數字 |
|
TIME |
時間 |
00:01:23 |
DATE_US |
美國時間 |
10-01-189二、10/01/1892/ |
DATE_EU |
歐洲日期格式 |
01-10-189二、01/10/188二、01.10.1892 |
ISO8601_TIMEZONE |
ISO8601時間格式 |
+10:2三、-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 |
語法解釋:
%{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}