【问题标题】:Mutliple config files causing duplicate message多个配置文件导致重复消息
【发布时间】:2017-05-04 21:41:14
【问题描述】:

我有一台在 AWS 中运行的 Logstash 机器。在 Logstash 中,我有 3 个配置文件,每个配置文件都定义了 1 个输入。这些输入正在从以下来源读取日志

  • 来自 s3
  • 来自 http 输入
  • 来自文件节拍

问题是我在 Kibana 中收到重复的消息。因此,对于 Filebeat 生成的 1 条消息,我在 Kibana 中看到了 3 条消息。我试图删除 1 个配置文件,但数量减少到 2。所以我很确定这是由于这些配置文件造成的。

让我困惑的是为什么会发生这种情况。我在所有 3 个配置文件上定义了单独的输入,但仍然收到重复的消息。这些是所有 3 个配置文件的输入部分。

s3 输入

input {
  s3 {
     bucket => "elb-logs"
     region => "us-east-1"
     prefix => "demo/AWSLogs/792177735214/"
     type   => "elb-logs"
     delete => true
  }

}

Http 输入

input {
  http {
     type   => "frontend-logs"
     codec  => "json"
  }
}

文件节拍

input {
  beats {
    port => "5043"
  }
}

对于所有 3 个配置文件,都有一个共同的输出部分,即

output {
    elasticsearch { hosts => [ "10.0.0.1:9200" ] }
}

【问题讨论】:

  • 你配置了多少个输出?
  • @OllyCruickshank 我已经用我配置的输出编辑了我的问题。
  • logstash 会将配置文件连接在一起并查看三个输出部分。因此,您的消息将被输出 3 次。我将创建一个单独的单一输出配置文件,并从您的 3 个输入配置文件中删除输出部分。
  • @OllyCruickshank 谢谢,它成功了。能否请您将此作为答案,以便我接受。
  • 添加了答案,谢谢!

标签: elasticsearch logstash kibana filebeat


【解决方案1】:

Logstash 会将三个配置文件连接在一起(s3 输入、Http 输入、Filebeat)并查看三个输出部分。

三个输出部分与特定输入无关 - 相反,Logstash 会将输入从三个源中的任何一个发送到所有配置的输出。结果,您的消息将被输出三次到同一个目的地。

我会创建一个单独的、单一的输出配置文件,并从您的 3 个输入配置文件中删除输出部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2016-10-20
    • 2011-09-29
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    相关资源
    最近更新 更多