Logstash中同一事件字段上的多个translate筛选器

Logstash中同一事件字段上的多个translate筛选器,logstash,logstash-configuration,Logstash,Logstash Configuration,我正在日志存储配置文件中使用以下转换过滤器。我有两个单独的YAML文件作为查找字典。两个筛选器引用的日志存储事件字段相同,但它们的目标字段不同。执行此操作时,第一个翻译过滤器的目的地字段已正确填充,但第二个翻译过滤器的目的地过滤器无法填充。如何使用这些多个翻译过滤器确保第二个字段的目的地 translate { dictionary_path => "C:/elk/lookupFile_1.yaml" field => "eventField_1"

我正在日志存储配置文件中使用以下转换过滤器。我有两个单独的YAML文件作为查找字典。两个筛选器引用的日志存储事件
字段
相同,但它们的
目标
字段不同。执行此操作时,第一个翻译过滤器的
目的地
字段已正确填充,但第二个翻译过滤器的
目的地
过滤器无法填充。如何使用这些多个翻译过滤器确保第二个字段的
目的地

translate {
      dictionary_path => "C:/elk/lookupFile_1.yaml"
      field => "eventField_1"
      destination => "destField_1"
}

translate {
      dictionary_path => "C:/elk/lookupFile_2.yaml"
      field => "eventField_1"
      destination => "destField_2"
}
我认为可能有两种选择:

a) 不使用两个YAML文件,只使用一个YAML文件,其中
value
字段是数组,例如
key1:val1a,val1b
。然后使用dissect过滤器将目标字段分隔为单独的字段


b) 创建一个重复的
eventField_1
,例如
eventField_1Copy
,并将其传递给第二个translate过滤器的字段参数。然后我可以删除
eventField\u 1Copy

这已经是基于同一源字段进行多个翻译的正确方法,您的第二个
yaml
文件肯定有问题,如果第一个翻译有效,第二个也应该有效。你能为翻译不起作用的valeu共享文件内容吗?@leandrojmp我创建了一个新的yaml文件,它起作用了!它正确地填充了第二个目标字段。谢谢您确认我的方法的有效性。考虑将您的评论作为对问题的回答,并在它为您工作时接受它。这已经是基于相同源字段进行多个翻译的正确方法,您的第二个代码> YAML文件一定有错误,如果第一个翻译工作了,第二种方法也应该有效。你能为翻译不起作用的valeu共享文件内容吗?@leandrojmp我创建了一个新的yaml文件,它起作用了!它正确地填充了第二个目标字段。谢谢你确认我的方法的有效性。考虑把你的评论作为对问题的回答,并在它为你工作时接受它。