Logstash JSON Parse - 忽略或删除子树

时间:2015-04-08 06:54:05

标签: json filter logstash kibana

我正在使用如下配置将JSON发送到logstash:

filter {
    json {
      source => "event"
      remove_field => [ "event" ]
    }
  }

以下是我发送的示例JSON对象:

   {
      "@timestamp": "2015-04-07T22:26:37.786Z",
      "type": "event",
      "event": {
        "activityRecord": {
          "id": 68479,
          "completeTime": 1428445597542,
          "data": {
            "2015-03-16": true,
            "2015-03-17": true,
            "2015-03-18": true,
            "2015-03-19": true
          }
        }
      }
    }

由于activityRecord.data对象的任意性质,我不希望logstash和elasticsearch为所有这些日期字段编制索引。我认为activityRecord.data.2015-03-16是要在Kibana中过滤的字段。

有没有办法忽略这个数据子树?或者至少在它已被解析后删除它?我尝试使用通配符remove_field,但没有运气。

1 个答案:

答案 0 :(得分:2)

虽然不完全直观但是documented的子字段引用是用方括号制作的,例如[field] [subfield],以便你必须使用remove_field:

mutate {
  remove_field => "[event][activityRecord][data]"
}

要使用通配符匹配删除字段,您必须使用ruby filter