【问题标题】:Logstash Filter to Extract URL from Text Field into a New Field Called URLLogstash 过滤器将 URL 从文本字段中提取到称为 URL 的新字段中
【发布时间】:2015-11-08 08:30:31
【问题描述】:

我正在输入一个名为文本的字段。这个字段有时可能包含一个 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?

谢谢。

【问题讨论】:

    标签: filter logstash logstash-grok elastic-stack


    【解决方案1】:

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

    请查看grok debugger,这是一个非常有用的工具,可用于构建您自己的模式。慢慢开始,从左到右按自己的方式工作,确保事情与您想要的方式匹配,然后再继续下一个输入。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多