2016-08-01 103 views
1

我是新的logstash和grok過濾器。我試圖解析從Apache訪問日誌的字符串,在logstash一個神交過濾器,其中的用戶名是在以下格式的訪問日誌的一部分:在Grok中分隔可變長度的點分隔字符串

name1.name2.name3.namex.id 

我要建一個名爲USERNAME新領域它的名稱是name1.name2.name3.namex,並且ID被剝離。我有它的工作,但問題是名稱的數量是可變的。有時也有3名(lastname.firstname.middlename),有時也有4名(lastname.firstname.middlename.suffix - SMITH.GEORGE.ALLEN.JR

%{WORD:lastname}.%{WORD:firstname}.%{WORD:middle}.%{WORD:id} 

當有4名以上它但我不希望有人能夠幫助我解決問題,我希望有人能幫助我正確使用grok過濾器,我知道我錯過了很可能非常簡單的一些東西

回答

2

您可以使用兩種模式,添加另一個匹配時有4個字段:

%{WORD:lastname}.%{WORD:firstname}.%{WORD:middle}.%{WORD:suffix}.%{WORD:id} 

但在這種情況下,您正在創建這聽起來像你甚至不想要的字段。

怎麼樣分裂出的ID,在它前面的一切留下一個模式,或許:

%{DATA:name}.%{INT}