REDIS在ELK stack中的作用是什么?

REDIS在ELK stack中的作用是什么?,redis,elastic-stack,filebeat,Redis,Elastic Stack,Filebeat,我目前使用filebeat作为日志传送者的体系结构,它将日志发送到日志存储索引器实例,然后发送到AWS中的托管弹性搜索。由于持久的TCP连接,我无法使用AWS ELB多个日志隐藏索引器实例实现负载平衡,因为filebeats总是选择实例中的一个并将其发送到那个里。所以我决定使用redis。现在看到在ELK stack中扩展redis并使其具有高可用性组件是多么困难,我想问redis到底有什么意义。我读了一百万遍,它就像一个缓冲区,但是如果filebeats停止向logstash发送日志,如果lo

我目前使用filebeat作为日志传送者的体系结构,它将日志发送到日志存储索引器实例,然后发送到AWS中的托管弹性搜索。由于持久的TCP连接,我无法使用AWS ELB多个日志隐藏索引器实例实现负载平衡,因为filebeats总是选择实例中的一个并将其发送到那个里。所以我决定使用redis。现在看到在ELK stack中扩展redis并使其具有高可用性组件是多么困难,我想问redis到底有什么意义。我读了一百万遍,它就像一个缓冲区,但是如果filebeats停止向logstash发送日志,如果logstash无法处理负载,为什么我们甚至需要一个缓冲区呢。Filebeat足够聪明,知道停止发送日志。如果弹性搜索失败,Logstash足够聪明,可以停止向弹性搜索发送日志。所以管道停止了。我真的不明白redis在每一个标准的麋鹿架构中都起着缓冲作用。

redis、Kafka或XYZ可以像您正确注意到的那样使用

ES的人昨天发表了一篇关于在管道中使用卡夫卡的文章,但也可能是Redis或XYZ。他们很好地说明了什么时候需要这种缓冲,什么时候不需要

有这样一个缓冲区是一个好主意,以便

  • 处理事件峰值
  • 处理可能无法访问的ES群集
  • 如果您没有预料到此类行为,即您知道

  • 您的活动总是以相同的速度和/或
  • 如果您需要升级ES群集,您可以稍后再发送日志
  • …那么你就不需要这样的缓冲了。更重要的是,你需要管理、监控和维护的软件少了一块


    当谈到弹性堆栈生态系统时,没有一刀切的方法,它总是取决于您精确的用例和需求。您需要问问自己什么对您、您的系统和您的用户很重要,然后据此设计解决方案。

    当前文档建议不要使用外部队列解决方案:,“建议使用Logstash持久队列,而不是外部队列层”那是在Logstash支持内部持久队列之前;-)