我的设置中的Filebeat将事件推送到具有2个代理的Kafka群集。我在主机列表中仅添加了一个节点,但是发现了集群中的两个代理。我从Filebeat日志中了解了这一点。
但是,即使发现了两个代理,事件也仅发布给代理。
下面是用于输出的filebeat配置
output.kafka:
hosts: ["host1:port"]
topic: '%{[fields.document_type]}'
worker: 4
partition.round_robin:
reachable_only: true
required_acks: 1
compression: gzip
compression_level: 3
即使在日志中,它也列出它仅与注册的其中一个代理连接。
2019-01-07T06:12:38.789-0800 INFO kafka/log.go:53 client/metadata fetching metadata for all topics from broker host1:port
2019-01-07T06:12:38.799-0800 INFO kafka/log.go:53 Connected to broker at host1:port (unregistered)
2019-01-07T06:12:38.806-0800 INFO kafka/log.go:53 client/brokers registered new broker #1 at host1:port
2019-01-07T06:12:38.806-0800 INFO kafka/log.go:53 client/brokers registered new broker #0 at host2:port
2019-01-07T06:12:38.806-0800 INFO kafka/log.go:53 kafka message: Successfully initialized new client
2019-01-07T06:12:38.806-0800 INFO pipeline/output.go:105 Connection to kafka(host1:port,host2:port) established
2019-01-07T06:12:38.807-0800 INFO kafka/log.go:53 kafka message: Producer.MaxMessageBytes must be smaller than MaxRequestSize; it will be ignored.
2019-01-07T06:12:38.808-0800 INFO kafka/log.go:53 producer/broker/0 starting up
2019-01-07T06:12:38.814-0800 INFO kafka/log.go:53 Connected to broker at host2:port (registered as #0)
Zookeeper控制台列出了群集中的两个代理,因此Kafka群集也很好。
我无法弄清楚导致Filebeat仅推向一个Kafka经纪人的错误。
谢谢
答案 0 :(得分:1)
我想我找到了原因。我的Kafka群集处于默认设置,该默认设置设置为一个分区。创建主题时,我还从一个节点启动了Kafka集群。因此,所有主题的分区都分配给一个节点。添加第二个节点时,Kafka不会自动重新平衡节点上的分区,从而将所有分区集中在一个位置。因此Filebeat仅将数据发送到一个节点。