使用根对象的Logstash合并字段

时间:2016-12-20 21:42:34

标签: logstash logstash-configuration

我有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"
}

有没有办法在不编写自己的过滤器插件的情况下完成此任务?

2 个答案:

答案 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