grok規則常用表達式


grok規則常用表達式


● USERNAME 或 USER

用戶名,由數字、大小寫及特殊字符(._-)組成的字符串

比如:1234、Bob、Alex.Wong等

● EMAILLOCALPART

電子郵件用戶名部分,首位由大小寫字母組成,其他位由數字、大小寫及特殊字符(_.+-=:)組成的字符串。注意,國內的QQ純數字郵箱賬號是無法匹配的,需要修改正則

比如:stone、Gary_Lu、abc-123等

● EMAILADDRESS

電子郵件

比如:[email protected][email protected][email protected]

● HTTPDUSER

Apache服務器的用戶,可以是EMAILADDRESS或USERNAME

● INT

整數,包括0和正負整數

比如:0、-123、43987等

● BASE10NUM 或 NUMBER

十進制數字,包括整數和小數

比如:0、18、5.23等

● BASE16NUM

十六進制數字,整數

比如:0x0045fa2d、-0x3F8709等

● BASE16FLOAT

十六進制數字,整數和小數

● 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

主機名稱

● IPORHOST

IP或者主機名稱

● HOSTPORT

主機名(IP)+端口

比如:127.0.0.1:3306、api.stozen.NET:8000等

● PATH

路徑,Unix系統或者Windows系統裏的路徑格式

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

● URIPROTO

URI協議

比如:http、ftp等

● URIHOST

URI主機

比如:www.stozen.Net、10.0.0.1:22等

● URIPATH

URI路徑

比如://www.stozen.net/abc/、/api.PHP等

● URIPARAM

URI裏的GET參數

比如:?a=1&b=2&c=3

● URIPATHPARAM

URI路徑+GET參數

比如://www.stozen.net/abc/api.php?a=1&b=2&c=3

● URI

完整的URI

比如:http://www.stozen.net/abc/api.php?a=1&b=2&c=3

日期時間表達式

● 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-15-1982、10/15/1982等

● DATE_EU

歐洲日期格式

比如:15-10-1982、15/10/1982、15.10.1982等

● 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

● Log表達式

LOGLEVEL

日誌等級

比如:Alert、alert、ALERT、Error等


grok規則配置實例


grok規則:%{表達式:自定義名稱},其中自定義名稱將在kibana界面中顯示,並用於過濾時使用。

下面以nginx日誌規則爲例,列出grok規則和nginx log format的對照表:


grok規則

Nginx log  format

%{IPORHOST:http_host}

採用IPORHOST格式,對應IP地址

$remote_addr

-

-

-

$remote_user

\[%{HTTPDATE:timestamp}\]

採用HTTPDATE格式,[]字符需要用\轉義

[$time_local]

\"(?:%{WORD:http_verb} %{NOTSPACE:http_request}  HTTP/%{NUMBER:http_version}\"

%{NUMBER:http_status_code} (?:%{NUMBER:bytes_read}|-))

http_verb(字符串)http_request(不帶任何空格的字符串)http_version(數字)三個字段對應$requesthttp_status_code(數字)對應$statusbytes_read(數字)對應$body_bytes_sent

"$request" $status

$body_bytes_sent

%{QS:referrer}

QS爲帶引號的字符串

"$http_referer"

%{QS:agent}

"$http_user_agent"

%{QS:forwarded}

"$http_x_forwarded_for"


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章