Logstash 如何在输出中使用mutatefilter插件
我有一个日志存储配置。使用该配置logstash在过滤器中执行一些操作并发送输出。一切正常 我想在同一配置文件中多输出一个elasticsearch。我的意思是在分析日志之后,logstash 将结果发送到一个索引,然后删除一些字段并将其发送到另一个索引。我的目标在下面的例子中Logstash 如何在输出中使用mutatefilter插件,logstash,Logstash,我有一个日志存储配置。使用该配置logstash在过滤器中执行一些操作并发送输出。一切正常 我想在同一配置文件中多输出一个elasticsearch。我的意思是在分析日志之后,logstash 将结果发送到一个索引,然后删除一些字段并将其发送到另一个索引。我的目标在下面的例子中 output { elasticsearch { ..index1.. } mutate { remove_field ... } mutate { add_field .. } elas
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块中保持原始?你的意思是我理解正确吗?我更新了示例以使其更清楚,现在它更有意义了吗?