首页 > 解决方案 > 如何在 Logstash 中的消息事件前面添加新字段?

问题描述

我正在尝试找到一种方法来将新字段添加到logstash中消息的开头。

背景:我正在摄取 JSON 格式的数据,并使用 mutate.add_field 插件向消息中添加新字段。

但是,我似乎找不到定义这个新字段位置的方法。然后将消息作为字符串输出到文件。从这里开始,还有其他进程会获取此文件并应用正则表达式来提取所需的信息。为了简化正则表达式模式,我希望将关键字段放在消息的开头。

标签: logstashlogstash-configuration

解决方案


您将需要添加一个具有所需顺序的新字段并删除其他字段。

例如,如果您的文档有字段fieldAfieldB并且在您的管道中添加字段otherFieldC并且otherFieldD您希望出现在您的消息前面,您应该执行以下操作:

mutate {
  add_field =>  { 
      "all_fields" => "%{otherFieldC} %{otherFieldD} %{fieldA} %{fieldB}"
   }
   remove_field => ["fieldA","fieldB","otherFieldC","otherFieldD"]
}

您的输出将是一个独特的字段,其中包含原始字段的信息以及您在管道中添加的字段。


推荐阅读