我有logstash输入,看起来像这样
{
"@timestamp": "2016-12-20T18:55:11.699Z",
"id": 1234,
"detail": {
"foo": 1
"bar": "two"
}
}
我想将" detail" 的内容与根对象合并,以便最终事件如下所示:
{
"@timestamp": "2016-12-20T18:55:11.699Z",
"id": 1234,
"foo": 1
"bar": "two"
}
有没有办法在不编写自己的过滤器插件的情况下完成此任务?
答案 0 :(得分:7)
您可以使用ruby过滤器执行此操作。
filter {
ruby {
code => "
event['detail'].each {|k, v|
event[k] = v
}
event.remove('detail')
"
}
}
答案 1 :(得分:0)
有一种使用const AWS = require('aws-sdk')
const spacesEndpoint = new AWS.Endpoint('sfo2.digitaloceanspaces.com'); // Replace with the endpoint for your region.
const s3 = new AWS.S3({
endpoint: spacesEndpoint,
accessKeyId: 'ACCESS_KEY',
secretAccessKey: 'SECRET_KEY'
});
var params = {
Bucket: "my-spaces-bucket",
Key: "folder/",
};
s3.putObject(params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
});
插件(默认情况下不包括)的简单方法。
json_encode
提取器将字段添加到事件的根。它是极少数可以将内容添加到根中的提取器之一。
json