我目前有一个使用filebeat作为日志发送程序的体系结构,该结构将日志发送到日志存储索引器实例,然后发送到AWS中的托管elasticsearch。由于存在持续的TCP连接,因此我无法使用AWS ELB多个日志存储索引器实例进行负载平衡,因为文件信号始终会选择这些实例并将其发送到那里。所以我决定使用redis。现在,看到扩展redis并使之在ELK堆栈中具有高可用性组件是多么困难,我想问一下redis的意义是什么。我读了一百万遍,它充当了缓冲区,但是如果logbeat不能处理负载,如果文件信号停止将日志发送到logstash,为什么我们甚至需要一个缓冲区。Filebeat足够聪明,足以知道它停止发送日志。如果elasticsearch失败,Logstash足够聪明,可以停止将日志发送到elasticsearch。因此,管道停止了。我真的不
如您所知,Redis或Kafka或XYZ可用作ELK堆栈中的缓冲区。
ES员工昨天发表了一篇有关在管道中使用Kafka 的博客文章,但也可能是Redis或XYZ。他们很好地说明了 何时 以及何时不需要这样的缓冲区。
最好有一个这样的缓冲区,以便
如果您不预期这样的行为,即您知道
…那么您就不需要这样的缓冲区了。而且,这将是您管理,监视和维护所需软件的少一部分。
对于Elastic Stack生态系统,没有一种万能的方法,它始终取决于您的确切用例和要求。您需要问问自己什么对您,您的系统和您的用户重要,然后相应地设计解决方案。