我目前使用filebeat作为日志收集器的架构,它将日志发送到logstash索引实例,然后再发送到托管在AWS中的Elasticsearch。由于存在持久化TCP连接,我无法使用AWS ELB对多个logstash索引器实例进行负载平衡,因为filebeat始终会选择其中一个实例并将其发送到该实例。因此,我决定使用redis。现在看到了在ELK堆栈中缩放和使其高度可用的困难程度,我想问一下redis到底有什么意义。我读了无数次它作为缓存器的作用,但是如果filebeat停止向logstash发送日志,如果logstash无法处理负载,为什么我们需要一个缓冲区呢?Filebeat足够聪明,知道停止发送日志。Logstash足够聪明,如果Elasticsearch不可用则停止向Elasticsearch发送日志。所以整个流程会停止。我真的不理解redis在每个标准的ELK架构中充当缓冲区的作用。