输出到kafka的logstash插件不工作

iugsix8n  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(621)

我正在尝试从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和经纪人,但都没用。
基本上,我不知道如何解决这个问题。任何帮助都将不胜感激。谢谢。

bvjveswy

bvjveswy1#

好吧,我想出来了。这是logstash.conf文件中的一个配置问题:当我将kafka输出更改为机器的本地ip地址时,它工作了。它似乎不适用于公共或私有主机名,或者公共ip地址。因为我使用了一个有条件的多个Kafka主题,比如:

output {
  kafka {
    bootstrap_servers => "10.0.0.XX:9092"
    codec => json
    topic_id => "test_topic"
  }
  if [type] == "ping" {
    kafka {
      bootstrap_servers => "10.0.0.XX:9092"
      codec => json
      topic_id => "logstash-ping"
    }
  }
  else if [type] == "snmp" {
    kafka {
      bootstrap_servers => "10.0.0.XX:9092"
      codec => json
      topic_id => "logstash-snmp"
    }
  }
}

如果其中任何一个设置不正确,它将不会发送给任何一个,尽管从logstash日志中可以看到连接正确。
作为参考,我对侦听器和advered.listeners的设置如下:

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://ec2-XX-XX-XX-XX.compute-1.amazonaws.com:9092

相关问题