我目前使用filebeat作为日志托运者的架构,它将日志发送到日志存储索引器实例,然后发送到AWS中的托管弹性搜索。由于持久的TCP连接,我无法使用AWS ELB多个日志存储索引器实例进行负载平衡,因为filebeats总是选择实例并将其发送到那里。所以我决定使用redis。现在看看在ELK堆栈中扩展redis并使其高度可用的组件是多么困难,我想问一下redis的重点是什么。我读了一百万次它作为一个缓冲区,但如果logbeash停止向logstash发送日志,如果logstash无法处理负载,为什么我们甚至需要一个缓冲区。 Filebeat非常聪明,可以知道停止发送日志。如果弹性搜索发生故障,Logstash足够聪明,可以停止向弹性搜索发送日志。所以管道停止了。我真的不了解redis在每个标准ELK架构中都充当缓冲区。
答案 0 :(得分:18)
正如您正确注意到的那样,Redis或Kafka或XYZ可以用作buffer in the ELK stack。
ES人们昨天发表了关于在管道中使用Kafka的blog post,但它也可能是Redis或XYZ。他们对 WHEN 提出了一个很好的观点,可能需要这样的缓冲区,而不是。
为了
而拥有这样的缓冲区是个好主意如果您没有预料到这种行为,即您知道
...那么你不需要这样的缓冲区。更重要的是,这将是您需要管理,监控和维护的一小部分软件。
对于Elastic Stack生态系统而言,没有一种通用的方法,它总是取决于您的精确用例和要求。您需要问问自己对您,您的系统和用户重要的是什么,然后相应地设计您的解决方案。