Logstash 如何在输出中使用mutatefilter插件

Logstash 如何在输出中使用mutatefilter插件,logstash,Logstash,我有一个日志存储配置。使用该配置logstash在过滤器中执行一些操作并发送输出。一切正常 我想在同一配置文件中多输出一个elasticsearch。我的意思是在分析日志之后,logstash 将结果发送到一个索引,然后删除一些字段并将其发送到另一个索引。我的目标在下面的例子中 output { elasticsearch { ..index1.. } mutate { remove_field ... } mutate { add_field .. } elas

我有一个日志存储配置。使用该配置logstash在过滤器中执行一些操作并发送输出。一切正常

我想在同一配置文件中多输出一个elasticsearch。我的意思是在分析日志之后,logstash 将结果发送到一个索引,然后删除一些字段并将其发送到另一个索引。我的目标在下面的例子中

output {
 elasticsearch {
      ..index1..
 }
 mutate {
   remove_field ...
} 
mutate {
   add_field ..
}
elasticsearch {
  ... index2 ...
}
}

但我不能在输出中使用mutate插件?我怎样才能做到这一点


感谢您回答

mutate
是一个
过滤器
插件,因此它只能在
过滤器
块内工作

您可以使用
克隆
过滤器复制事件,对原始和克隆的事件应用不同的过滤器,然后将两个副本相应地传递到不同的输出

它大概看起来像这样

filter {
  clone {
    clones => ["cloned"]
  }
  # apply here filters that should be applied to both the primary and secondary event
  if [type] == "cloned" {
    # apply here filters that should be applied to the secondary event
  }
}

output {
  if [type] == "cloned" {
    elasticsearch {
      ... index2 ...
    }
  } else {
    elasticsearch {
      ... index1 ...
    }
  }
}

请参见

我在筛选器中多次使用类型。如何将“我的类型”和“克隆”一起使用?需要应用于事件的两个变体的规则保持不变。您只需要“if[type]”就可以将规则应用于第二个变体。因此,您可能会像以前一样使用类型,除了
输出
部分,所以ı应该复制我的几乎所有代码,并删除if[type]=cloned中的类型,并在else块中保持原始?你的意思是我理解正确吗?我更新了示例以使其更清楚,现在它更有意义了吗?