Logstash 在grok中对变长点分隔字符串进行配对
我是新的logstash和grok过滤器。我正在尝试使用logstash中的grok筛选器解析Apache访问日志中的字符串,其中用户名是访问日志的一部分,格式如下:Logstash 在grok中对变长点分隔字符串进行配对,logstash,logstash-grok,Logstash,Logstash Grok,我是新的logstash和grok过滤器。我正在尝试使用logstash中的grok筛选器解析Apache访问日志中的字符串,其中用户名是访问日志的一部分,格式如下: name1.name2.name3.namex.id 我想构建一个名为USERNAME的新字段,其中的名称为name1.name2.name3.namex,id已去掉。我让它工作,但问题是名称的数量是可变的。有时有3个名字(lastname.firstname.middlename),有时有4个名字(lastname.first
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个或4个以上的名称,则无法正确解析。我希望有人能帮助我使用正确的grok筛选器。我知道我缺少了一些可能非常简单的内容。您可以使用两种模式,添加另一种模式,在有4个字段时匹配:
%{WORD:lastname}.%{WORD:firstname}.%{WORD:middle}.%{WORD:suffix}.%{WORD:id}
但在本例中,您创建的字段听起来好像您根本不想要
如果有一种模式将ID分离,将所有内容都放在前面,也许:
%{DATA:name}.%{INT}