Logstash - 一个输入 - 多个输出

时间:2015-09-29 06:55:30

标签: logstash

我有一个包含许多json对象的文件如下:

  

{"浏览器":" Chrome","版本":" 45.0.2454.99","插件&#34 ;:[{   "插件":" Flash","版本":" 11.2.4.3" },{"插件":" Firebug","版本":" 1.5.6.0" }],"存储":   [{"存储":" LS","时间":106},{"存储":" WS" ,"时间":167}]   }

是否可以在logstash中创建以下三个索引?

  • 浏览器索引:浏览器,版本
  • 插件索引:插件,版本
  • 存储索引:存储,时间

2 个答案:

答案 0 :(得分:1)

是的,这是可能的,但这需要一些工作。

您需要克隆{}每个事件,从该副本中不需要的克隆中删除字段(请参阅prune {}),然后将每个克隆定向到单独的输出{}节。

现在,真正的问题是'为什么'?除非您有一些需要此问题的安全或数据保留问题,否则我建议您不要这样做。

答案 1 :(得分:1)

是的,这是可能的。在较高级别,可以使用以下方法:

  1. 使用clone创建输入数据的多个副本。
  2. 克隆将为每个副本添加一个“类型”,然后您可以使用它来使用不同的过滤器处理文档的不同副本。
  3. 在输出定义中,添加if / else语句以检测“类型”,然后使用该语句将文档的不同副本定向到不同的输出。

blog post演示了上述步骤,并进行了一些其他增强。

另一种可能的方法是使用pipeline-to-pipeline communication (beta)

免责声明:我是Elastic的一名咨询工程师。