我正在尝试使用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放在一个阵列中? 谢谢你的帮助。