根据logstash中的模式将字符串转换为数组

时间:2019-01-30 09:35:34

标签: logstash logstash-grok logstash-configuration logstash-filter

我的原始数据。

{
  message: {
      data: "["1,2","3,4","5,6"]"
  }
}

现在,我想将数据字段的值转换为数组。 所以它应该变成:

{
  message: {
      data: ["1,2", "3,4", "5,6"]
  }
}

通过

mutate {
    gsub => ["data", "[\[\]]", ""]
  }

我摆脱了方括号。

此后,我尝试根据逗号进行拆分。但这行不通。由于我的数据也包含逗号。

我尝试写一个dissect block,但这没用。

那我应该怎么做呢?

1 个答案:

答案 0 :(得分:1)

您是否尝试过json过滤器?如果数据字段始终包含有效的json数据,则使用json过滤器,如下所示:

json {
    source => "data"
    target => "data"
}

使用target => "data"将覆盖数据字段。