Filter Logstash筛选器将URL从文本字段提取到名为URL的新字段中

Filter Logstash筛选器将URL从文本字段提取到名为URL的新字段中,filter,logstash,logstash-grok,elastic-stack,Filter,Logstash,Logstash Grok,Elastic Stack,我正在输入一个名为text的字段。此字段有时可能包含URL。我想做的是从文本中提取URL,并将其放入名为URL的新字段中 我试过grok,但grok模式似乎需要特定的日志格式才能工作。例如,以下操作将起作用: 5546 hello www.google.com {id} {text} {URL} 但以下情况不会发生 4324 hello my name is Ryan www.yahoo.com {id} {text} {URL} 相反,它将把hello作为文本,而不是把www.yahoo.

我正在输入一个名为text的字段。此字段有时可能包含URL。我想做的是从文本中提取URL,并将其放入名为URL的新字段中

我试过grok,但grok模式似乎需要特定的日志格式才能工作。例如,以下操作将起作用:

5546 hello www.google.com
{id} {text} {URL}
但以下情况不会发生

4324 hello my name is Ryan www.yahoo.com
{id} {text} {URL}
相反,它将把hello作为文本,而不是把www.yahoo.com作为URL。有办法解决这个问题吗?请注意,有时文本可能如下所示:

www.gmail.com hello everyone
我可以使用什么过滤器从进入Logstash的文本中提取URL


谢谢。

grok{}是获取输入字符串并将其解析为字段的正确过滤器。诀窍是制作一个或多个满足您需求的模式

请查看,这是构建您自己的模式的非常有用的工具。慢慢开始,从左到右依次进行,在继续下一个输入之前,确保事情与您想要的方式相匹配

调试器还有一个到标准grok模式的链接,您应该熟悉这些模式。您的示例本身不包含URL,但包含主机,该主机通常与%{HOSTNAME}匹配

要匹配主机前未知数量的内容,请尝试%{DATA}