我试图总结我们的Kafka的变化,但我在我的头和有一个困难的时间调试问题。
我有多个服务器使用filebeat将ruby-on-rails日志导入1个kafka代理,从那里日志进入我们的logstash服务器,然后存储在elasticsearch中。我没有设置原来的系统,但我试图把我们从3Kafka服务器到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条答案
按热度按时间pod7payv1#
一个Kafka经纪人。。。我试着把我们从3台Kafka服务器调到1台,因为他们不需要。我在安装程序中更新了这些文件中的ip地址配置,以删除2个旧kafka服务器并重新启动相应的服务
我认为您误解了kafka只是一个高可用性的系统,如果您有多个代理,那么其他2个是需要的,尽管您可能只在logstash配置中提供了一个代理
您的错误表明单个代理拒绝了连接,因此不会向其发送日志。
对于一个有用的kafka集群,我至少推荐4个代理,在所有关键主题上推荐3个复制因子。。这样,您就可以容忍代理中断以及分配kafka代理的负载。
例如,将主题作为日志服务器总数的一个因素,并根据应用程序类型为kafka消息设置密钥,也会很有好处。这样就可以保证这些应用程序的日志顺序