filebeat output  redis 报错 i/o timeout

先把报错内容贴出来。

ERROR redis/client. go: Failed to RPUSH to redis list with write tcp 172.16.73.32:->172.16.73.33::   i/o timeout
ERROR redis/client. go: Failed to publish events: write tcp 1172.16.73.32:->172.16.73.33:: i/o timeout

报错内容是写入超时了。解析问题,在redis的服务的信息正常情况下,可能的问题,第一可能性:是消息队列堵塞了,第二可能性是:连接redis 服务器的网络不太好。

1 redis消息队列阻塞

我的错误就是这个,我在logstash 进行读取redis 的时候配置出了问题,解析也出了问题,所以导致消息队列阻塞了,filebeat 也自然写不进去了。

解决办法:

先检查 logstash 的input的配置:

正确配置实例:

input {
redis {
host => "172.16.73.33" #redis ip
port => "" #redis 端口
password =>"" #redis 密码
db => 9          # 指定redis 库编号
batch_count => 1     # 这个默认值125,指从redis一次性读取多少条数据,关于这个为什么设置为1,我在的另外一篇文章会写到。
data_type => "list" #数据类型
key => "filebeat" #key 值名称
   }
}

output 的配置也需要指定正确 ,否则输出不出去,也是会堵塞的。

检查 input 堵塞了还是 output  堵塞了,我们可以先让output 输出到控制台 ,然后看是否可以输出数据,可以的话就是 ouput  的配置有误。

反之则是我们的 input 获取不到消息队列 ,检查input 的配置是否正确。

2. 连接redis 网络不太好。

由于一些网络原因会导致我们连接redis 会超时 ,最后导致 io  timeout .我们可以在filebeat 里面进行设置超时时间来避免这一问题。

filebeat.yml

output.redis:
hosts: ["172.16.73.33:52611"]
password: ""
key: "filebeat"
db: 9
timeout: 60 #添加这个参数,设置超时时间,默认值这个是5。

添加 timeout  参数 用来设置 超时时间。来减缓网络带来的影响。具体设置的数值根据你业务的情况进行设置。

3. redis 版本过低。

官方建议的redis版本是2.6版本以上,所以如果我们是使用的redis 2.6  以下的版本,那么很大可能性就是版本导致的问题,我们可以使用2.6 以上的版本进行测试。看看是否是版本导致的问题。

redis的新版本安装文档:redis 安装 与错误

filebeat output redis 报错 i/o timeout的更多相关文章

  1. mac brew install redis 报错

    mac brew install redis 报错 /usr/local/opt/php55/bin/phpize /usr/local/opt/php55/bin/phpize: line 61: ...

  2. redis报错Windows error 0x70(a large memory)

    redis报错Windows error 0x70 redis 嫌弃你内存不够了,就给你不开第二个实例. The Windows version of Redis allocates a large ...

  3. Linux学习14-ab报错apr_pollset_poll: The timeout specified has expired (70007)

    前言 使用ab压力测试时候出现报错apr_pollset_poll: The timeout specified has expired (70007),本篇总结了几个ab常见的报错和对应解决办法 当 ...

  4. window下安装redis报错: creating server tcp listening socket 127.0.0.1:6379: bind No error

    window下安装redis报错: creating server tcp listening socket 127.0.0.1:6379: bind No error 解决: 如果没有配置环境,在安 ...

  5. Redis报错 : (error) NOAUTH Authentication required.

    原文:Redis报错 : (error) NOAUTH Authentication required. 这个错误是因为没有用密码登陆认证 , 先输入密码试试 . 127.0.0.1:6379> ...

  6. Windows安装redis报错处理(转!)

    要谈则谈,要打便打! ---2019.5.9,贸易战 转自:http://www.yayihouse.com/yayishuwu/chapter/1297 安装redis报错信息 [9204] 15 ...

  7. redis报错解决

    1.Connecting to node 127.0.0.17000 [ERR] Sorry, can't connect to node 192.168.1.917000 redis集群:Conne ...

  8. 安装Redis-cluster-gem install redis报错的解决方案

    错误描述: [root@eshop-cache01 local]# gem install redis ERROR: Loading command: install (LoadError) cann ...

  9. docker启动redis报错 oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo

    docker启动redis报错 1:C 17 Jun 08:18:04.613 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo1:C 17 Jun 08 ...

随机推荐

  1. sqlserver 实现数据变动触发信息

    1.建立存储过程,功能是动态写入文件中信息,可以在触发器或存储过程调用. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create proc [d ...

  2. Android-Java-Thread start run的区别

    Thread start(Thread子类.start(); 这样属于开启新的线程,不属于方法调用) Thread.currentThread().getName(); 获取当前正在运行的线程执行路径 ...

  3. PostgreSQL 用户和权限管理

    PostgreSQL 用户和权限管理 创建 CREATE ROLE rolename;CREATE USER username;CREATE USER和CREATE ROLE的区别在于,CREATE ...

  4. 利用HttpWebRequest模拟表单提交

    using System; using System.Collections.Specialized; using System.IO; using System.Net; using System. ...

  5. ASP.NET Core使用EF Core操作MySql数据库

    ASP.NET Core操作MySql数据库, 这样整套环境都可以布署在Linux上 使用微软的 Microsoft.EntityFrameworkCore(2.1.4) 和MySql出的 MySql ...

  6. mui关闭侧滑

    一个页面有多个webview时,其中一个可以侧滑,其它禁止侧滑 document.getElementsByClassName('mui-inner-wrap')[0].addEventListene ...

  7. 编程哲学之C#篇:02——学习思维

    <代码大全>的第二章:介绍隐喻(类比)的思维方式, <经济学原理>的第二章:介绍怎么像经济学家一样思考, <计算机的心智操作系统之哲学原理>的第一章:介绍学习操作系 ...

  8. AJPFX平台有哪些优势?

    AJPFX为全世界的客户提供高端金融投资产品服务.在欧洲,大洋洲.北美洲,亚洲均设有交易专用服务器,以保证交易系统正常和高速运作.给投资者提供可靠.稳定.正确的交易服务系统也是我们一直以来为客户提供的 ...

  9. S11 day 94 RestFramework 之 APIView视图

    VIEW视图(Django自带的) 1.  url url(r'login/$', views.login.as_view()), 2.点开 as_view() , as_view()为类方法.  l ...

  10. OSX - 可以安装任何程序!

    在shell里面执行命令: sudo spctl --master-disable 参考: https://www.jianshu.com/p/010cc30228f3