elasticsearch - 当使用 redis 作为 logstash 的输入时,获取 redis 列表比插入它慢?

标签 elasticsearch redis logstash

我已经按照下面网上的说明建立了一个日志虚拟化系统 http://michael.bouvy.net/blog/en/2013/11/19/collect-visualize-your-logs-logstash-elasticsearch-redis-kibana/

登录磁盘-->logstash-forwarder ----------> redis -->logstash-->elasticsearch

一切顺利,直到添加四台服务器将它们的日志发送到我的中央日志收集服务器。

redis服务器的内存随着时间的推移而增加,最终当所有内存被消耗时崩溃。

我用redis-cli监控查了一段时间,发现rpushing到redis的速度比redis从blpop的速度快很多,我想这就是redis server内存变大的原因。

weblogic@MSAMGM01:~/logcenter/redis/bin$ ./redis-cli monitor > 1.txt

weblogic@MSAMGM01:~/logcenter/redis/bin$ grep blpop 1.txt | wc -l 1159 weblogic@MSAMGM01:~/logcenter/redis/bin$ grep rpush 1.txt | wc -l 17123

有人有解决此类问题的想法或经验吗?

顺便说一句,中央服务器的 cpu 很低,我确认这不是这个问题的根本原因。

谢谢!

最佳答案

根据 documentation for the Redis input , 你应该能够设置 threads到您要使用的线程数 从 Redis 读取,也许你可以增加它以从 Redis 中提取更多事件 同时?

另外,如果logstash在过滤管道中速度太慢,你可以运行 bin/logstash -w <N>其中 <N>是要运行的过滤 worker 的数量 同时。

关于elasticsearch - 当使用 redis 作为 logstash 的输入时,获取 redis 列表比插入它慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29694462/

相关文章:

apache-spark - 如何丰富流查询的数据并将结果写入Elasticsearch?

java - 如何使用 Micronaut 框架将 POJO 存储在 Redis 中?

c# - 如何在 Servicestack.Redis 中使用 "New Managed Pub/Sub Server"取消订阅 channel

elasticsearch - Logstash - 在 mutate 中找到拆分结果的长度

elasticsearch - Logstash/Elasticsearch CSV字段类型,日期格式和多字段(.raw)

elasticsearch - 在同一搜索字符串上同时处理完全搜索和部分搜索

ElasticSearch 2.4.6 根本没有启动,没有任何错误消息 Ubuntu 16.04

r - 在索引中查找最常用的术语(错误:400-所有分片均失败)

python-3.x - 有没有一种方法可以在 N 秒后设置 key ?

elasticsearch - 使用DSL查询更新文档字段