GROK 表達式
GROK 表達式
常用表達式
標識:USERNAME 或 USER
正則:[a-zA-Z0-9._-]+
名稱:用戶名
描述:由數字、大小寫及特殊字符(._-)組成的字符串
例子:1234、Bob、Alex.Wong
標識:EMAILLOCALPART
正則:[a-zA-Z][a-zA-Z0-9_.+-=:]+
名稱:用戶名
描述:首位由大小寫字母組成,其他位由數字、大小寫及特殊字符(_.+-=:)組成的字符串
例子:windcoder、windcoder_com、abc-123
標識:EMAILADDRESS
正則:
[a-zA-Z][a-zA-Z0-9_.+-=:]+@\b(?:[0-9A-Za-z][0-9A-Za-z-]{0,62})(?:.(?:[0-9A-Za-z][0-9A-Za-z-]{0,62}))*(.?|\b)
名稱:電子郵件
描述:首位由大小寫字母組成,其他位由數字、大小寫及特殊字符(_.+-=:)組成的字符串,不能匹配qq郵箱
例子:windcoder@abc.com、windcoder_com@gmail.com、abc-123@163.com
標識:INT
正則:(?:[+-]?(?:[0-9]+))
名稱:整數
描述:匹配0和正負整數
例子:0、-123、43987
標識:BASE10NUM 或 NUMBER
正則:(?:[+-]?(?:[0-9]+))
名稱:十進制數字
描述:包括整數和小數
例子:0、18、5.23
標識:BASE16NUM
正則:(?<![0-9A-Fa-f])(?:[+-]?(?:0x)?(?:[0-9A-Fa-f]+))
名稱:十六進制數字
描述:整數
例子:0x0045fa2d、-0x3F8709
標識:WORD
正則:(?<![0-9A-Fa-f])(?:[+-]?(?:0x)?(?:[0-9A-Fa-f]+))
名稱:字符串
描述:包括數字和大小寫字母
例子:String、65754、ILoveYou
標識:NOTSPACE
正則:\S+
名稱:非空格字符串
描述:匹配非空格、至少一次
例子:String、65754、ILoveYou
標識:SPACE
正則:\s*
名稱:空格字符串
描述:匹配空格、0次和多次
例子:String、65754、ILoveYou
標識:QUOTEDSTRING 或 QS
正則:(?>(?<!\)(?>"(?>\.|[\"]+)+"|""|(?>'(?>\.|[\']+)+')|''|(?>(?>\\.|[^\\]+)+`)|``))
名稱:帶引號的字符串
描述:帶引號的字符串
例子:"This is an apple"、'What is your name?'
標識:UUID
正則:[A-Fa-f0-9]{8}-(?:[A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}
名稱:標準UUID
描述:標準UUID 32位
例子:23717d73-0ca5-44fd-a542-7d51ee72e21d
標識:MAC
正則:(????:[A-Fa-f0-9]{2}-){5}[A-Fa-f0-9]{2})
名稱:MAC地址
描述:可以是思科(Cisco)設備里的MAC地址,也可以是通用或者Windows系統的MAC地址
例子:23717d73-0ca5-44fd-a542-7d51ee72e21d
標識:IP
正則:(?:%{IPV6}|%{IPV4})
IPV4
?<![0-9])(?:(?:[0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])[.](?:[0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])[.](?:[0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])[.](?:[0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5]))(?![0-9])
IPV6 ((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?
名稱:IP地址
描述:IPv4或IPv6地址
例子:127.0.0.1、FE80:0000:0000:0000:AAAA:0000:00C2:0002
標識:HOSTNAME
正則:\b(?:[0-9A-Za-z][0-9A-Za-z-]{0,62})(?:.(?:[0-9A-Za-z][0-9A-Za-z-]{0,62}))*(.?|\b)
名稱:IP或者主機名稱
例子:PC-20210723HTPJ,192.168.0.2
標識:HOSTPORT
正則:%{IPORHOST}:%{POSINT}
名稱:主機名(IP)+端口
例子:PC-20210723HTPJ:8080,192.168.0.2:808
標識:PATH
正則:(?:%{UNIXPATH}|%{WINPATH})
名稱:路徑
描述:Unix系統或者Windows系統里的路徑格式
例子:d:\aa\bb\cc 或 /aa/bb/cc
標識:URIPROTO
正則:A-Za-z+
名稱:URI協議
例子:http ftp
標識:URIHOST
正則:%{IPORHOST}(?::%{POSINT:port})?
名稱:URI主機
例子:windcoder.com、10.0.0.1:22
標識:URIPATH
正則:(???[A-Za-z0-9$.+!'(){},~:;=@#%&_-])+
名稱:URI路徑
例子://windcoder.com/abc/、/api.php
日期表達式
標識:MONTH
正則:
\b(?:[Jj]an(?:uary|uar)?|[Ff]eb(?:ruary|ruar)?|Mm?r(?:ch|z)?|[Aa]pr(?:il)?|[Mm]a(?:y|i)?|[Jj]un(?:e|i)?|[Jj]ul(?:y|i)?|[Aa]ug(?:ust)?|[Ss]ep(?:tember)?|Oo?t(?:ober)?|[Nn]ov(?:ember)?|[Dd]e(?:c|z)(?:ember)?)\b
名稱:月份
描述:英文格式月份
例子:January, Feb, December
標識:MONTHNUM
正則:(?:0?[1-9]|1[0-2])
名稱:月份
描述:數字格式月份
例子:1, 2, 12
標識:MONTHDAY
正則:(?:0?[1-9]|1[0-2])
名稱:日期
描述:數字格式日期
例子:03、9、31
標識:DAY
正則:
(?:Mon(?:day)?|Tue(?:sday)?|Wed(?:nesday)?|Thu(?:rsday)?|Fri(?:day)?|Sat(?:urday)?|Sun(?:day)?)
名稱:星期幾名稱
描述:英文格式星期幾
例子: Monday, Tue, Thu
標識:YEAR
正則:(?>\d\d){1,2}
名稱:年份數字
例子: 21、22、23
標識:HOUR
正則:(?:2[0123]|[01]?[0-9])
名稱:小時數字
例子: 13、14、23
標識:MINUTE
正則:(?:[0-5][0-9])
名稱:分鐘數字
例子: 13、14、43
標識:SECOND
正則:(????:[0-5]?[0-9]|60)(?:[:.,][0-9]+)?)
名稱:秒數字
例子: 13、14、43
標識:TIME
正則:
(?!<[0-9])(?:2[0123]|[01]?[0-9])???:[0-5][0-9])(?:??????:[0-5]?[0-9]|60)(?:[:.,][0-9]+)?))(?![0-9])
名稱:時間
例子: 12:32:00
標識:DATE_US
名稱:美國時間
例子: 10-01-1892、10/01/1892/
標識:DATE_EU
正則:
(????:0[1-9])|(?:[12][0-9])|(?:3[01])|[1-9])./-./-
名稱:歐洲日期格式
例子:01-10-1892、01/10/1882、01.10.1892
標識:ISO8601_TIMEZONE
正則:
(?:Z|[+-]%{HOUR}(?::?%{MINUTE}))
名稱:ISO8601時間格式
例子:+10:23、-1023
標識:TIMESTAMP_ISO8601
正則:
%{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}?
名稱:ISO8601時間戳格式
例子:2016-07-03T00:34:06+08:00
標識:DATE
正則:
%{DATE_US}|%{DATE_EU}
名稱:美國日期或歐洲日期
例子:10-01-1892、10/01/1892/ 或 01-10-1892、01/10/1882、01.10.1892
標識:DATESTAMP
正則:
%{DATE_US}|%{DATE_EU}
名稱:完整日期+時間
例子:07-03-2016 00:34:06
標識:HTTPDATE
正則:
%{MONTHDAY}/%{MONTH}/%{YEAR}:%{TIME} %{INT}
名稱:http默認日期格式
例子:03/Jul/2016:00:36:53 +0800
預定義完整正則表達式
USERNAME [a-zA-Z0-9._-]+
USER %{USERNAME}
EMAILLOCALPART [a-zA-Z][a-zA-Z0-9_.+-=:]+
EMAILADDRESS %{EMAILLOCALPART}@%{HOSTNAME}
INT (?:[+-]?(?:[0-9]+))
BASE10NUM (?<![0-9.+-])(?>[+-]?(????:[0-9]+(?:.[0-9]+)?)|(?:.[0-9]+)))
NUMBER (?:%{BASE10NUM})
BASE16NUM (?<![0-9A-Fa-f])(?:[+-]?(?:0x)?(?:[0-9A-Fa-f]+))
BASE16FLOAT \b(?<![0-9A-Fa-f.])(?:[+-]?(?:0x)?(????:[0-9A-Fa-f]+(?:.[0-9A-Fa-f]*)?)|(?:.[0-9A-Fa-f]+)))\b
POSINT \b(?:[1-9][0-9]*)\b
NONNEGINT \b(?:[0-9]+)\b
WORD \b\w+\b
NOTSPACE \S+
SPACE \s*
DATA .*?
GREEDYDATA .*
QUOTEDSTRING (?>(?<!\)(?>"(?>\.|[\"]+)+"|""|(?>'(?>\.|[\']+)+')|''|(?>(?>\\.|[^\\]+)+`)|``))
UUID [A-Fa-f0-9]{8}-(?:[A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}
URN, allowing use of RFC 2141 section 2.3 reserved characters
URN urn:[0-9A-Za-z][0-9A-Za-z-]{0,31}???:%[0-9a-fA-F]{2}|[0-9A-Za-z()+,.:=@;$_!*'/?#-])+
Networking
MAC (?:%{CISCOMAC}|%{WINDOWSMAC}|%{COMMONMAC})
CISCOMAC (????:[A-Fa-f0-9]{4}.){2}[A-Fa-f0-9]{4})
WINDOWSMAC (????:[A-Fa-f0-9]{2}-){5}[A-Fa-f0-9]{2})
COMMONMAC (????:[A-Fa-f0-9]{2}??{5}[A-Fa-f0-9]{2})
IPV6 ((([0-9A-Fa-f]{1,4}??{7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}??{6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}??{5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}??{4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})???(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}??{3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}??(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}??{2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}??(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}??{1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}??(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(??((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}??(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?
IPV4 (?<![0-9])(????:[0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])...)(?![0-9])
IP (?:%{IPV6}|%{IPV4})
HOSTNAME \b(?:[0-9A-Za-z][0-9A-Za-z-]{0,62})(?:.(?:[0-9A-Za-z][0-9A-Za-z-]{0,62}))*(.?|\b)
IPORHOST (?:%{IP}|%{HOSTNAME})
HOSTPORT %{IPORHOST}:%{POSINT}
paths (only absolute paths are matched)
PATH (?:%{UNIXPATH}|%{WINPATH})
UNIXPATH (/[[[:alnum:]]_%!$@:.,+~-]*)+
TTY (?:/dev/(pts|tty([pq])?)(\w+)?/?(?:[0-9]+))
WINPATH (?>[A-Za-z]+:|\)(?:\[^\?])+
URIPROTO A-Za-z+
URIHOST %{IPORHOST}(?::%{POSINT:port})?
uripath comes loosely from RFC1738, but mostly from what Firefox
doesn't turn into %XX
URIPATH (???[A-Za-z0-9$.+!'(){},~:;=@#%&_-])+
#URIPARAM ?(?:[A-Za-z0-9]+(?:=(?:[&]*))?(?:&(?:[A-Za-z0-9]+(?:=(?:[&]))?)?))?
URIPARAM ?[A-Za-z0-9$.+!'|(){},~@#%&/=:;_?-[]<>]
URIPATHPARAM %{URIPATH}(?:%{URIPARAM})?
URI %{URIPROTO}??/(?:%{USER}(?::[^@]*)?@)?(?:%{URIHOST})?(?:%{URIPATHPARAM})?
Months: January, Feb, 3, 03, 12, December
MONTH \b(?:[Jj]an(?:uary|uar)?|[Ff]eb(?:ruary|ruar)?|Mm?r(?:ch|z)?|[Aa]pr(?:il)?|[Mm]a(?:y|i)?|[Jj]un(?:e|i)?|[Jj]ul(?:y|i)?|[Aa]ug(?:ust)?|[Ss]ep(?:tember)?|Oo?t(?:ober)?|[Nn]ov(?:ember)?|[Dd]e(?:c|z)(?:ember)?)\b
MONTHNUM (?:0?[1-9]|1[0-2])
MONTHNUM2 (?:0[1-9]|1[0-2])
MONTHDAY (????:0[1-9])|(?:[12][0-9])|(?:3[01])|[1-9])
Days: Monday, Tue, Thu, etc...
DAY (?:Mon(?:day)?|Tue(?:sday)?|Wed(?:nesday)?|Thu(?:rsday)?|Fri(?:day)?|Sat(?:urday)?|Sun(?:day)?)
Years?
YEAR (?>\d\d){1,2}
HOUR (?:2[0123]|[01]?[0-9])
MINUTE (?:[0-5][0-9])
'60' is a leap second in most time standards and thus is valid.
SECOND (????:[0-5]?[0-9]|60)(?:[:.,][0-9]+)?)
TIME (?!<[0-9])%{HOUR}:%{MINUTE}(?::%{SECOND})(?![0-9])
datestamp is YYYY/MM/DD-HH:MM:SS.UUUU (or something like it)
DATE_US %{MONTHNUM}[/-]%{MONTHDAY}[/-]%{YEAR}
DATE_EU %{MONTHDAY}[./-]%{MONTHNUM}[./-]%{YEAR}
ISO8601_TIMEZONE (?:Z|[+-]%{HOUR}(?::?%{MINUTE}))
ISO8601_SECOND (?:%{SECOND}|60)
TIMESTAMP_ISO8601 %{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}?
DATE %{DATE_US}|%{DATE_EU}
DATESTAMP %{DATE}[- ]%{TIME}
TZ (?:[APMCE][SD]T|UTC)
DATESTAMP_RFC822 %{DAY} %{MONTH} %{MONTHDAY} %{YEAR} %{TIME} %{TZ}
DATESTAMP_RFC2822 %{DAY}, %{MONTHDAY} %{MONTH} %{YEAR} %{TIME} %{ISO8601_TIMEZONE}
DATESTAMP_OTHER %{DAY} %{MONTH} %{MONTHDAY} %{TIME} %{TZ} %{YEAR}
DATESTAMP_EVENTLOG %{YEAR}%{MONTHNUM2}%{MONTHDAY}%{HOUR}%{MINUTE}%{SECOND}
Syslog Dates: Month Day HH:MM:SS
SYSLOGTIMESTAMP %{MONTH} +%{MONTHDAY} %{TIME}
PROG [\x21-\x5a\x5c\x5e-\x7e]+
SYSLOGPROG %{PROG:program}(?:[%{POSINT:pid}])?
SYSLOGHOST %{IPORHOST}
SYSLOGFACILITY <%{NONNEGINT:facility}.%{NONNEGINT:priority}>
HTTPDATE %{MONTHDAY}/%{MONTH}/%{YEAR}:%{TIME} %{INT}
Shortcuts
QS %{QUOTEDSTRING}
日志格式
SYSLOGBASE %{SYSLOGTIMESTAMP:timestamp} (?:%{SYSLOGFACILITY} )?%{SYSLOGHOST:logsource} %{SYSLOGPROG}:
日志級別
LOGLEVEL ([Aa]lert|ALERT|[Tt]race|TRACE|[Dd]ebug|DEBUG|[Nn]otice|NOTICE|[Ii]nfo?(?:rmation)?|INFO?(?:RMATION)?|[Ww]arn?(?:ing)?|WARN?(?:ING)?|[Ee]rr?(?:or)?|ERR?(?:OR)?|[Cc]rit?(?:ical)?|CRIT?(?:ICAL)?|[Ff]atal|FATAL|[Ss]evere|SEVERE|EMERG(?:ENCY)?|[Ee]merg(?:ency)?)

浙公網安備 33010602011771號