【问题标题】:Loadbalance duplicating the events using logstash负载均衡使用logstash复制事件
【发布时间】:2017-02-05 08:37:23
【问题描述】:

我将配置为 filebeat,负载平衡为 true 和两个 logstash 主机,即输入到 elasticsearch 的 logstash1 和 logstash2。 logstash的filebeat配置如下

prospectors:
 -
  paths:
  - /home/testLogs/temp.log
  spool_size: 1
  publish_async: true
### Logstash as output
logstash:
  hosts: ["10.186.187.44:5044", "10.186.187.6:5044"]
  worker: 1
  loadbalance: true

我设置的两个logstash上的logstash输入如下

input {
   beats {
   port => 5044
   congestion_threshold => 100000
   }
}

output {
   stdout {codec => rubydebug}
   elasticsearch {
   hosts => "ipaddress:9200"
   index => "testidx"
   }
}

但是,当我将一些行回显到文件 temp.log 中时,我看到在弹性搜索中处理的行是重复的文档,在我看来,两个 logstash 都在处理所有行。在两个logstash的标准输出上,有时我看到两个logstash处理的外汇line1和line2,或者有时logstash1处理的line1和logstash1和line1、line2、line2由logstash2处理 然而,即使使 loadbalance=flase 我仍然看到重复的文档。 & 在标准输出中,我 sed line1 和 line2 由 logstash1 或 logstash2 处理了两次。

所以只是想知道我的配置是错误的,这些行没有分布在logstashes上,还是像它的行为或错误一样。

【问题讨论】:

    标签: elasticsearch logstash filebeat


    【解决方案1】:

    来自documentation

    如果 [loadbalance option] 设置为 true 并且配置了多个 Logstash 主机,则输出插件会将已发布的事件负载均衡到所有 Logstash 主机上。

    因此,filebeat 的预期行为是将事件复制到两个 Logstash。


    如果您想使用两个 Logstash,您可以将事件发送到队列(如 redis)并让 Logstash 从队列中消费。

    【讨论】:

    • 感谢 baudsp 的快速回复。但是我在这里没有得到 loadbalance=true 的意义,难道它不应该为提供的主机(即logstashes)平衡事件吗?其次,当负载平衡为假时,当提供两个主机时它仍然重复
    • 另外,当我尝试像下面这样再添加一个主机时,考虑到每个都处理所有行主机,我仍然会得到重复的文档而不是三次重复:["localhost:5044", "localhost: 5045", "localhost:5046"]
    • 老实说我不知道​​。我从来没有使用过filebeat,所以我不能说。但我不明白为什么你会使用 loadbalance: false 得到重复,因为这不是文档中的行为
    【解决方案2】:

    受您帖子的启发,我用最少的配置测试了这个用例(因为我们也需要它),并且它可以工作。 elasticsearch 中没有重复的文档。 我测试了两者,负载平衡真假。

    文件节拍:

    logstash:
    hosts: ["IP-LS1:8098","IP-LS2:8098"]
    loadbalance: true
    

    Logstash

    input {
        beats {
            port => 8098
        }
    }
    filter {...}
    output {
    
        if [type] == "filebeat-test" {
            stdout {codec => rubydebug}
            elasticsearch {
              hosts => ['IP-LS1|IP-LS2:9200']
              index => "filebeat-test-%{+YYYY.MM.dd}"
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      • 2022-01-02
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多