从Logstash存储多个相同的结果

从Logstash存储多个相同的结果,logstash,logstash-grok,Logstash,Logstash Grok,因此,假设我有一个事件作为多行对象进入Logstash(有许多事件基本上都与下面的模式匹配): 我将如何进行匹配,以便分别存储每个“find…”行 我当前的配置文件类似于: filter { grok { break_on_match => false match => { "message" => [ "Starting script at ${TIMESTAMP_ISO8601:run_time}", "Fo

因此,假设我有一个事件作为多行对象进入Logstash(有许多事件基本上都与下面的模式匹配):

我将如何进行匹配,以便分别存储每个“find…”行

我当前的配置文件类似于:

filter {
  grok {
    break_on_match => false
    match => { 
      "message" => [
        "Starting script at ${TIMESTAMP_ISO8601:run_time}",
        "Found result %{GREEDYDATA:result} at ${IP:result_ip}" 
      ]
    }
  }
}
目前,这只捕获“查找结果…”行中的一行。(也就是说,它匹配所有的变量,但只存储其中一个-只有一个
结果
变量输出。)我想单独捕获它们,并将它们存储为。。。好吧,什么都行,只要他们都在


是否有一种方法可以捕获多个相同模式并清晰地存储所有结果捕获数据,同时将整个多行事件保持在一起,以便我可以将其与头数据(如脚本开始时间)联系起来?

我认为您可以使用拆分过滤器来实现所需的功能。它允许您将一个事件拆分为多个部分。据我记忆所及,独立部分都是原始事件的副本。您必须使用terminator参数,该参数控制消息何时拆分为多个部分


查看以下文档:

我认为您可以使用拆分过滤器实现您想要的功能。它允许您将一个事件拆分为多个部分。据我记忆所及,独立部分都是原始事件的副本。您必须使用terminator参数,该参数控制消息何时拆分为多个部分

查看以下文档:

filter {
  grok {
    break_on_match => false
    match => { 
      "message" => [
        "Starting script at ${TIMESTAMP_ISO8601:run_time}",
        "Found result %{GREEDYDATA:result} at ${IP:result_ip}" 
      ]
    }
  }
}