Logstash从string创建值数组

时间:2017-05-03 15:58:54

标签: elasticsearch logstash logstash-configuration

我在日志中有以下信息。它采用JSON格式。

{   
  "someField":"someValue",   
  "columns":"[colName1, colName2, colName3, ... colNameN]", 
  "someField":"someValue" 
}

我希望将其存储为同一字段columns中的数组。

我想要显示的用例是有多少用户使用了名为colName1的特定列及其数量。

我正在使用ELK stak 5.x

2 个答案:

答案 0 :(得分:2)

如果您的来源是直接json格式

使用json插件

filter {
  json {
    source => "message"
  }
}

数组字段将自动转换为数组

https://www.elastic.co/guide/en/logstash/current/plugins-filters-json.html

答案 1 :(得分:1)

output.conf中的Mutate可能对你有帮助。

请点击此链接 - https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html#plugins-filters-mutate-replace

虽然不支持从字符串到数组的直接转换。我在一段时间后遇到了相同的用例,使用了合并功能。我建议有一些虚拟字段并与'列合并。字段来创建新的数组字段。希望这会有所帮助。