Metricbeat:重复事件删除

时间:2018-08-15 17:13:01

标签: logstash elastic-stack metricbeat

我正在使用Metricbeat将与网络相关的数据发送到logstash实例。然后,logstash实例会将这些数据放入ElasticSearch。我们已经设置了Kibana仪表板以可视化此数据。但是,我注意到有时Metricbeat多次发送相同的数据。

进行一些在线搜索后,我发现Metricbeat可以重新发送数据。如果Metricbeat第一次尝试无法成功发送数据,则可能发生这种情况。

一种避免重复数据的方法是使用“指纹”过滤器,如以下链接中所述: https://www.elastic.co/blog/logstash-lessons-handling-duplicates

因此,我设置了一个指纹过滤器。过滤器使用“ MURMUR3”算法为每个事件的文档查找唯一编号。但是,我注意到的是,有时通过Metricbeat重新发送事件数据时,数据中字段的顺序会稍有变化。因此,文档的指纹会更改,即使使用过滤器,logstash也会在ES中两次插入相同的数据。

以前有人遇到过这个问题吗?有关如何解决此问题的任何建议将受到高度赞赏。

这是我的logstash配置中的代码段:

fingerprint {
    concatenate_all_fields => true
    concatenate_sources => true
    method => "MURMUR3"
    key => "metricbeat de-duplication"
    base64encode => true 
    target => "[@metadata][fingerprint]"
  }

然后我将[@metadata] [指纹]插入我的Kafka输出中,如下所示:

mutate {
    add_field => {
      "_id" => "%{[@metadata][fingerprint]}"
    }
}

output {
  kafka {
    codec => json
    bootstrap_servers => "${KAFKA_BOOTSTRAP_SERVERS}"
    topic_id => "${KAFKA_TOPIC_ID}"
    acks => "1"
  }
}

以下是重复事件文档的示例片段: 1.文件1:

{
....
"_id": "2512356320",
"_source": {
    "@timestamp": "2018-08-15T16:47:54.585Z",
    "system": {
      "network": {
        "name": "enp13s0f0",
        "in": {
          "dropped": 0,
          "errors": 0,
          "bytes": 0,          
          "packets": 0         
        },
        "out": {
          "dropped": 0,
          "errors": 0,
          "packets": 0, <!-- different -->
          "bytes": 0 <!-- different -->
        }
      }
    },
....
}

Document 2:

{
  ...
  "_id": "321459497",
  "_source": {
    "@timestamp": "2018-08-15T16:47:54.585Z",
    "system": {
      "network": {
        "name": "enp13s0f0",
        "in": {
          "dropped": 0,
          "errors": 0,
          "bytes": 0,
          "packets": 0
        },
        "out": {
          "dropped": 0,
          "bytes": 0, <!-- different -->
          "errors": 0,
          "packets": 0
        }
      }
    },
...
}
从上面的代码片段可以看出,在这些情况下,MURMUR3过滤器为“ _id”字段产生了不同的值。这些文件的唯一区别在不匹配行的末尾使用“突出显示。我通过对整个文件进行比较来确认这一点。

谢谢, 尼克希尔。

0 个答案:

没有答案