Fork me on GitHub

LogStash启动报错:<Redis::CommandError: ERR unknown command 'script'>与batch_count 的 配置

环境条件:

系统版本:centos 6.8

logstash版本:6.3.2

redis版本:2.4

logstash  input配置:

复制代码
input {
    redis {
      host => "172.16.73.33"  #redis ip
      port => "52611"         #redis 端口
      password =>"123456"     #redis 密码
      db => 9          # 指定redis 库编号
      data_type => "list"     #数据类型
      key => "filebeat"       #key 值名称
   }
}
View Code
复制代码

问题:

  1.  当我在上面的input的配置里面没有加上password参数的时候,会报下面的警告,千万不要忘记配置密码哦

[2018-09-29T17:55:18,803][WARN ][logstash.inputs.redis    ] Redis connection problem {:exception=>#<Redis::CommandError: ERR operation not permitted>}

 

  2.  当我进行启动logstash 的时候发现有如下警告。

[2018-09-29T18:18:06,764][WARN ][logstash.inputs.redis    ] Redis connection problem {:exception=>#<Redis::CommandError: ERR unknown command 'script'>}

  该问题是由于我们的redis版本导致的,我们采用的redis版本是2.4版本,

官方文档这样写到:

官方文档链接:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-redis.html#_description_31

This input will read events from a Redis instance; it supports both Redis channels and lists. The list command (BLPOP) used by Logstash is supported in Redis v1.3.1+, and the channel commands used by Logstash are found in Redis v1.3.8+. While you may be able to make these Redis versions work, the best performance and stability will be found in more recent stable versions. Versions 2.6.0+ are recommended. For more information about Redis, see http://redis.io/ batch_count note: If you use the batch_count setting, you must use a Redis version 2.6.0 or newer. Anything older does not support the operations used by batching.

虽然官方建议的是2.6版本以上,但是文档的意思我们2.4版本也还是可以使用的。我们可以知道的一点就是,batch_count 参数要使用的时候一定得在2.6版本以上,接下来我们可以再看下另外一个文档。

文档链接:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-redis.html#plugins-inputs-redis-batch_count

batch_count
Value type is number
Default value is 125
The number of events to return from Redis using EVAL.

这里告诉我们的是在新的版本中是已经默认加了batch_count 参数的,而且默认值为125。

这样我们就找出了我们错误的原因,要支持参数 batch_count  需要2.6版本以上。那么解决的办法有两种:

  1  将redis版本升级。

       2  我们不使用batch_count 参数。

由于我们这个redis里面还有其他业务,所以我们升级版本这条路就走不通了,我们决定将 batch_count  的数值设置为1 ,用来表示我们每次从redis取回一条数据,这样我们就可以正常的启动logstash了。

复制代码
input {
    redis {
      host => "172.16.73.33"  #redis ip
      port => "52611"         #redis 端口
      password =>"123456"     #redis 密码
      db => 9          # 指定redis 库编号
      batch_count => 1     # 这个默认值125,我们需要设置为1以支持redis2.6以下的版本。
      data_type => "list"     #数据类型
      key => "filebeat"       #key 值名称
   }
}
复制代码

以上就是我在使用logstash 遇到的问题 以及解决的办法。希望能对你有些帮助。

posted @   自由早晚乱余生  阅读(899)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示