一尘不染

REDIS在ELK堆栈中的意义是什么?

redis

我目前有一个使用filebeat作为日志发送程序的体系结构,该结构将日志发送到日志存储索引器实例,然后发送到AWS中的托管elasticsearch。由于存在持续的TCP连接,因此我无法使用AWS
ELB多个日志存储索引器实例进行负载平衡,因为文件信号始终会选择这些实例并将其发送到那里。所以我决定使用redis。现在,看到扩展redis并使之在ELK堆栈中具有高可用性组件是多么困难,我想问一下redis的意义是什么。我读了一百万遍,它充当了缓冲区,但是如果logbeat不能处理负载,如果文件信号停止将日志发送到logstash,为什么我们甚至需要一个缓冲区。Filebeat足够聪明,足以知道它停止发送日志。如果elasticsearch失败,Logstash足够聪明,可以停止将日志发送到elasticsearch。因此,管道停止了。我真的不


阅读 390

收藏
2020-06-20

共1个答案

一尘不染

如您所知,Redis或Kafka或XYZ可用作ELK堆栈中的缓冲区

ES员工昨天发表了一篇有关在管道中使用Kafka 的博客文章,但也可能是Redis或XYZ。他们很好地说明了 何时
以及何时不需要这样的缓冲区。

最好有一个这样的缓冲区,以便

  1. 处理事件尖峰
  2. 处理可能无法访问的ES集群

如果您不预期这样的行为,即您知道

  1. 您的活动将始终以相同的速度和/或
  2. 如果您需要升级ES群集,可以稍后再发送日志,

…那么您就不需要这样的缓冲区了。而且,这将是您管理,监视和维护所需软件的少一部分。

对于Elastic
Stack生态系统,没有一种万能的方法,它始终取决于您的确切用例和要求。您需要问问自己什么对您,您的系统和您的用户重要,然后相应地设计解决方案。

2020-06-20