Ruby代码修改以在Logstash

时间:2018-10-10 13:35:36

标签: ruby logstash

我正在尝试使用Logstash整理存储在Elastic Search中的一个JSON文件。 数据流如下:

  

input {“查询用于字段[files] [md5]的elasticsearch”}

     

过滤器{“我的自定义红宝石代码以使[files] [md5]”变平)

     

输出{“将展平的文件导出到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放在一个阵列中? 谢谢你的帮助。

0 个答案:

没有答案