Модификация кода Ruby для выравнивания файла JSON в Logstash - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь сгладить один файл JSON, сохраненный в Elastic Search, с помощью Logstash.Поток данных выглядит следующим образом:

input {"запрос эластичного поиска для полей [files] [md5]"}

filter {"мой пользовательский код рубина для выравнивания [files] [md5] "}

output {" экспорт сплющенных файлов в csv "}

Мой ввод:

"files": [{         "SHA256": "1213447D713ECA24484983E754474D9D2F4A283D77DDBD9C8084CD7AA0574ACF",       "MD5": "7D332F11DD7389C8121AA523F07CFEEC",      "SHA1": "6026B28C6049115272138AD357A5AF67B99354A5"  }, {        "SHA256": "1213447D713ECA24484983E754474D9D2F4A283D77DDBD9C8084CD7AA0574ACF",       "MD5": "7D332F11DD7389C8121AA523F07CFEEC",      "SHA1": "6026B28C6049115272138AD357A5AF67B99354A5"  }, {        "SHA256": "1212447D713ECA24484983E754474D9D2F4A283D77DDBD9C8084CD7AA0574ACF",       "MD5": "7D332F11DD7389C8121AA523F07CFEEC",      "SHA1": "6026B28C6049115272138AD357A5AF67B99354A5"  } ]

Код фильтрации:

ruby {
    code => '
        a = event.get("files")
        a.each_index { |i|
             event.set("files-#{i}-total", a[i]["MD5"])
        }
    '
}

Мой вывод:

"files-1-total":"7D332F11DD7389C8121AA523F07CFEEC",
"files-2-total":"7D332F11DD7389C8121AA523F07CFEEC",
"files-3-total":"7D332F11DD7389C8121AA523F07CFEEC"

Что я хочу сделать, это:

"files":["7D332F11DD7389C8121AA523F07CFEEC","7D332F11DD7389C8121AA523F07CFEEC","7D332F11DD7389C8121AA523F07CFEEC"]

Как я могу изменить код, чтобы все MD5 были в одном массиве?Спасибо за помощь.

...