2016-08-01 108 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}