我使用http_poller作为输入,并返回一个json数组。我使用的是默认的json编解码器。json看起来是这样的:
{“名称”:“UsedMemory”、“值”:{“值”:“222932448”、“类型”:“java.lang.Long”}、{“名称”:“FreeMemory”、“值”:{“值”:“308630048”、“类型”:“java.lang.Long”}、{“名称”:“堆”、“值”:{“值”:“531562496”、“类型”:“java.lang.Long”}、{“名称”:“UpTime”,“值”:{“值”:“29900897”,“类型”:“java.lang.Long”},{“名称”:“ProcessCPU”,“值”:{“值”:“0.15846178794662266”,“类型”:“java.lang.Double”},{“名称”:“GcCount”,“值”:{“值”:“2198”,“类型”:“java.lang.Long”},{“名称”:“GcTime”,“值”:{“值”:“35658”,“类型”:“java.lang.Long”}}
我看到logstash通过拆分数组将每个数组元素视为一个新事件。例如
{
"name" => "UpTime",
"value" => {
"value" => "29579549",
"type" => "java.lang.Long"
},
"@version" => "1",
"@timestamp" => "2016-11-17T04:12:45.492Z"
}
{
"name" => "ProcessCPU",
"value" => {
"value" => "0.16146030555740817",
"type" => "java.lang.Double"
},
"@version" => "1",
"@timestamp" => "2016-11-17T04:12:45.492Z"
}
...如何获得logstash (2.4)来组合元素,将其视为一个事件并输出如下
{
"Uptime" => "29579549"
"ProcessCPU" => ""0.16146030555740817"
....
}我认为我必须生成这样一个新的字段,但需要遍历数组的所有元素才能生成一个完整的事件。{ "%{name}“=> "%{value}”.}
发布于 2016-11-24 21:53:50
在阅读了更多关于逻辑存储和实验的内容之后,我找到了答案:
json {源=>“消息”目标=> "doc“}
Ruby{代码=>“event‘’doc‘.每个{\elem’‘name’]=elem‘’value‘}”}}
https://stackoverflow.com/questions/40646963
复制相似问题