Logstash-更改克隆文档中字段的值logstash-克隆过滤器插件

问题描述

Logstash 7.8.1

我正在尝试使用logstash从一个输入创建两个文档。不同的模板,不同的输出索引。一切正常,直到我尝试仅更改克隆文档的值。 我需要在两个文档中都有一个具有不同值的字段-克隆过滤器插件可以吗?

文档A-[测试] [事件]-trn

文档B(克隆的文档)-[测试] [事件]-spn

我认为如果我在克隆插件中使用remove_field和下一个add_field,它将起作用,但是我担心排序有问题-可能在add_field之后调用了remove_field方法(该字段仅被删除,但未添加新值)。

接下来,我尝试先向克隆的文档中添加值,而不是向原始文档中添加值,但是它总是创建一个同时包含两个值(原始和克隆的)的数组,并且在该字段中我只需要一个值:/。 有人可以帮我吗?

配置:

input {

 file {
        path => "/opt/test.log"
        start_position => beginning
    }
}



filter {
  grok {
    match => {"message" => "... grok...."
       }
  }

mutate {
add_field => {"[test][event]" => "trn"}
}

clone {  
clones => ["cloned"] 
#remove_field => [ "[test][event]" ]  #remove the field completely
add_field => {"[test][event]" => "spn"}   #not added 
add_tag => [ "spn" ]
 }

}

output {
if "spn" in [tags] {
 elasticsearch {
    index => "spn-%{+yyyy.MM}"
    hosts => ["localhost:9200"]
    template_name => "templ1"
   }
  stdout { codec => rubydebug }
} else {
  elasticsearch {
    index => "trn-%{+yyyy.MM}"
    hosts => ["localhost:9200"]
    template_name => "templ2"
   }
  stdout { codec => rubydebug }
}
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)