问题描述
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 (将#修改为@)