首页 > 代码库 > redis占用高内存导致的socket连接失败

redis占用高内存导致的socket连接失败

最近在搞ELK日志平台,部署filebeat收集日志时(输出到redis),出现了经典的【连接被目标机器积极拒绝】异常,

1)环境配置:

  开发机,开发服务机(开发机上的virtualbox虚拟机,启动了ELK服务)、测试机、测试服务机(ELK)

2)本机(开发机)使用可输出日志到开发服务机 + 测试服务机

3)测试机可输出日志到开发服务机,配置为测试服务机则提示

【2017-04-07T13:39:52+08:00 ERR Connecting error publishing events (retrying): dial tcp 192.168.78.51:6379: connectex: No connection could be made because the target machine actively refused it.】

 

分析过程如下:

1)测试机上检查端口是否可用:telnet 192.168.78.51 6379,果然无法连接。

2)开发机上检查端口是否可用:telnet 192.168.78.51 6379,可以连接。

3)怀疑测试机上防火墙问题,关闭防火墙后还是连不上。

4)测试机上连接其他端口:telnet 192.168.78.51 22,居然可以连接

5)检查测试服务机:内存占用大

技术分享

6)检查redis:居然有1千万条消息待处理

技术分享

7)重启logstash读取消息后,测试机上telnet正常,收集日志成功。

结论:

logstash死掉导致redis内消息无法消化,进而影响了端口连接。

 

redis占用高内存导致的socket连接失败