我正在尝试从logstash向kafka发送消息,并不断收到以下错误:
tail -f /var/log/logstash/logstash-plain.log
[2018-04-18T17:55:33,836][WARN ][org.apache.kafka.clients.NetworkClient]
[Producer clientId=producer-1] Connection to node -1 could not be established. Broker may not be available.
[2018-04-18T17:55:46,095][INFO ][logstash.outputs.kafka ] Sending batch to Kafka failed. Will retry after a delay. {:batch_size=>1, :failures=>1, :sleep=>0.1}
[2018-04-18T17:55:51,979][INFO ][logstash.outputs.kafka ] Sending batch to Kafka failed. Will retry after a delay. {:batch_size=>1, :failures=>1, :sleep=>0.1}
[2018-04-18T17:56:46,196][INFO ][logstash.outputs.kafka ] Sending batch to Kafka failed. Will retry after a delay. {:batch_size=>1, :failures=>1, :sleep=>0.1}]
这是以前的工作,但不是现在,我不知道什么变化,因为机器是未动过。
我可以通过kafka运行的机器上的控制台生产者,以及运行logstash的机器上的控制台生产者与kafka进行通信,并且可以从vpc之外的远程机器进行通信,所以我不认为这是网络错误。当然,我把logstash和kafka放在同一台机器上,但是我得到了同样的错误。
我仔细检查了一下,确定我是kafka、logstash和logstash输出kafka插件的最新版本,所以我认为这也不是兼容性问题。我试过重新启动logstash和经纪人,但都没用。
基本上,我不知道如何解决这个问题。任何帮助都将不胜感激。谢谢。
1条答案
按热度按时间bvjveswy1#
好吧,我想出来了。这是logstash.conf文件中的一个配置问题:当我将kafka输出更改为机器的本地ip地址时,它工作了。它似乎不适用于公共或私有主机名,或者公共ip地址。因为我使用了一个有条件的多个Kafka主题,比如:
如果其中任何一个设置不正确,它将不会发送给任何一个,尽管从logstash日志中可以看到连接正确。
作为参考,我对侦听器和advered.listeners的设置如下: