logstash动态解析json以在输出中添加新字段

时间:2016-04-21 14:46:10

标签: json logstash logstash-configuration

我有以下JSON INPUT:

{
    "ts": "1459504800000",
    "data": "30.7",
    "sid": "1"
}

使用此过滤器:

filter {
    mutate {
            convert => { 
            "data" => "float"
            "ts" => "integer" 

        }

    }

    date { 
        match => [ "ts", "UNIX_MS"]
            target => "ts_date"
    }
}

我得到以下结果:

{
            "ts" => 1459504800000,
          "data" => 30.7,
           "sid" => "1",
      "@version" => "1",
    "@timestamp" => "2016-04-21T14:29:54.241Z",
          "type" => "redis-input",
       "ts_date" => "2016-04-01T10:00:00.000Z"
}

我想在输入中使用"data""sid"参数值(1和30.7)动态组合的结果中添加一个新字段。此字段应与"somestring"+"1" => 30.7

类似

谢谢!

1 个答案:

答案 0 :(得分:1)

这就是add_field的用途。对于这样与其他过滤器无关的任务,我会在mutate中使用它:

mutate {
    add_field => { "something%{sid}" => "%{data}" }
}

此时该值将是一个字符串。如果你想要它是数字,你需要使用转换函数进行第二次变异。