我正在输入一个名为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}
相反,它会以文本形式打招呼,而不是将www.yahoo.com作为URL。有没有解决的办法?请注意,有时,文字可能如下所示:
www.gmail.com hello everyone
我可以使用哪种过滤器从Logstash文本中提取URL?
谢谢。
答案 0 :(得分:0)
grok {}是一个正确的过滤器,用于获取输入字符串并将其解析为字段。诀窍是制作一个或多个符合您要求的模式。
请查看grok debugger,这是构建您自己的模式的非常有用的工具。慢慢开始,从左到右工作,确保事情与您想要的方式相匹配,然后再进行下一步输入。
调试器还有一个指向标准grok模式的链接,您应该熟悉它们。您的示例本身不包含网址,但包含主机,该主机通常与%{HOSTNAME}匹配。
要在主机之前匹配未知数量的内容,请尝试%{DATA}。