我正在尝试将更改包装到我们的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?)
答案 0 :(得分:0)
到1 Kafka经纪人......我试图将我们从3台Kafka服务器带到1,因为他们不需要。我在我们的设置中更新了这些文件中的IP地址配置,以删除2个旧的Kafka服务器并重新启动相应的服务
我认为您误解Kafka只是一个高可用性系统,如果您有多个代理,那么另外2 是必需的尽管您可能只在logstash配置中提供单个代理< / p>
您的错误说明单个代理拒绝连接,因此不会向其发送任何日志。
至少,我建议使用4个代理,并在有用的Kafka集群的所有关键主题上复制因子为3.这样,您可以容忍代理中断以及分配Kafka代理的负载。
将主题计数作为总日志记录服务器的一个因素,以及根据应用程序类型键入Kafka消息也是有益的。这样就可以确保这些应用程序的日志顺序