将json嵌套字符串数组转换为扁平字符串logstash

时间:2018-01-23 19:46:05

标签: json elasticsearch logstash

我有这个JSON

-awakeFromNib

即使我使用了logstash过滤器:

{
"users":"[{"id":1,"name":"bob"},{"id":2,"name":"alice"},{"id":3,"name":"david"}]",
"date":"23/01/2017"
}

该消息以弹性形式存储为单个事件

users => [{" ID":1,"名称":"摆锤"},{" ID":2"名称&# 34;:"爱丽丝"},{" ID":3,"名称":"大卫"}] 日期=> 23/01/2017

问题1:如何将用户字段从字符串转换为json数组以获得此

filter {
    split {
        field => "users"
    }
}

问题2:我如何将这个嵌套的json存储为弹性

中的多个json事件

预期产出:

"users":[{"id":1,"name":"bob"},{"id":2,"name":"alice"},{"id":1,"name":"david"}],
"date":"23/01/2017"

提前感谢您的回答

1 个答案:

答案 0 :(得分:1)

对于问题1,您可以使用Logstash JSON过滤器插件转换JSON格式。

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

对于问题2,我认为从一行中你不能制作多个文档,你需要为新文档添加新行。

Logstath可以解析一个日志行或多个日志行来准备一个elasticsearch文档。但是从一行来看,它无法创建多个文档。