Kafka大量连接断开重连问题解决

问题名称

Kafka大量连接断开重连

关键词

Kafka大量连接断开重连

问题场景

系统环境:Red Hat Enterprise Linux (RHEL) Server 6.5

日志分析系统安装完成后,正常运行。运行一段时间后,突然无法接受到日志。

检查日志分析系统数据流,发现Kafka出现问题,Zookeepeer自动关闭。重新启动zookeeper后,数据无法从KafkaLogstash

原因分析

1. 查看Logstash端日志,发现错误日志如下:

[2018-04-12 16:25:11,412] INFO Closed socket connection for client /XXX.XXX.XXX.XXX:47606 (no session established for client)
[2018-04-12 16:25:14,410] INFO  Accepted socket connection from /XXX.XXX.XXX.XXX:47610
[2018-04-12 10:28:47,989] WARN Unable to read additional data from client sessionid 0x0, likely client has closed socket (org.apache.zookeeper.server.NIOServerCnxn)  

 

2. 推测配置的超时时间过短,Zookeeper没有读完Consumer的数据,连接就被Consumer断开了,设置zookeeper.session.timeout.ms2000,重启Zookeeper,发现不能解决问题。

3. Kafka端,运行“netstat -antp | grep 2181”命令,发现很多TIME_WAIT情况。到Logstash端,运行“netstat -ant”命令,发现大量TIME_WAIT的情况,说明在Zookeeper关闭过程中,Logstash不停的发送请求,重启Zookeeper后,虽然建立了连接,但是出现了大量连接断开重连现象。

解决方案

  1. Logstash端,停止所有Logstash。之后逐一开启Logstash,并利用“netstat -ant”命令逐一查看连接情况。
  2. 启动所有Logstash,发现连接全部建立,未再次发生大量连接断开重连现象,问题解决。

你可能感兴趣的:(Kafka)