卡夫卡:客户已经没有可用的经纪人与他们交谈了

时间:2018-04-23 19:23:56

标签: elasticsearch apache-kafka logstash apache-zookeeper filebeat

我正在尝试将更改包装到我们的Kafka中,但我已经过头了,我很难调试这个问题。

我有多个服务器使用Filebeat将他们的Ruby on Rails日志汇集到1个Kafka代理,从那里日志转到我们的Logstash服务器,然后存储在Elasticsearch中。我没有设置原始系统,但我尝试将我们从3个Kafka服务器带到1,因为它们不需要。我在我们的设置中更新了这些文件中的IP地址配置,以删除2个旧的Kafka服务器并重新启动相应的服务。

# main (filebeat)
sudo vi /etc/filebeat/filebeat.yml
sudo service filebeat restart


# kafka
sudo vi /etc/hosts
sudo vi /etc/kafka/config/server.properties
sudo vi /etc/zookeeper/conf/zoo.cfg
sudo vi /etc/filebeat/filebeat.yml
sudo service kafka-server restart
sudo service zookeeper-server restart
sudo service filebeat restart


# elasticsearch
sudo service elasticsearch restart


# logstash
sudo vi /etc/logstash/conf.d/00-input-kafka.conf
sudo service logstash restart
sudo service kibana restart

当我拖尾Filebeat日志时,我看到了这个 -

2018-04-23T15:20:05Z WARN kafka message: client/metadata got error from broker while fetching metadata:%!(EXTRA *net.OpError=dial tcp 172.16.137.132:9092: getsockopt: connection refused) 

2018-04-23T15:20:05Z WARN kafka message: client/metadata no available broker to send metadata request to 

2018-04-23T15:20:05Z WARN client/brokers resurrecting 1 dead seed brokers 

2018-04-23T15:20:05Z WARN kafka message: Closing Client 

2018-04-23T15:20:05Z ERR Kafka connect fails with: kafka: client has run out of available brokers to talk to (Is your cluster reachable?)

1 个答案:

答案 0 :(得分:0)

  

到1 Kafka经纪人......我试图将我们从3台Kafka服务器带到1,因为他们不需要。我在我们的设置中更新了这些文件中的IP地址配置,以删除2个旧的Kafka服务器并重新启动相应的服务

我认为您误解Kafka只是一个高可用性系统,如果您有多个代理,那么另外2 是必需的尽管您可能只在logstash配置中提供单个代理< / p>

您的错误说明单个代理拒绝连接,因此不会向其发送任何日志。

至少,我建议使用4个代理,并在有用的Kafka集群的所有关键主题上复制因子为3.这样,您可以容忍代理中断以及分配Kafka代理的负载。

将主题计数作为总日志记录服务器的一个因素,以及根据应用程序类型键入Kafka消息也是有益的。这样就可以确保这些应用程序的日志顺序