ELK 的好的架构是什么?

What's the good architecture for ELK?

我正在尝试使用ELK搭建一个日志分析系统。我看到很多以不同方式使用 ELK 的架构。其中之一是

Logstash->Redis->Logstash->Elasticseach->Kibana

第一个Logstash用于收集日志,第二个Logstash用于过滤日志。

我对Redis不是很了解,一定要用吗?为什么不使用 Kafka?

两个 logstash 实例之间的 redis 是一个缓冲区,以防 elasticsearch 或 logstash 索引器出现故障。

根据您使用 logstash 处理的内容,您可能不需要它。如果您正在读取日志文件,当 logstash(索引器)不堪重负时,logstash(发送器)将停止发送日志。这样,您将获得一个分布式缓存(在您的日志文件中!)。

如果您使用的是一次性事件(例如来自网络设备的陷阱或系统日志),那么像 redis 或 rabbitmq 这样的缓冲区对于存储它们很重要,直到 logstash(索引器)可用。

第二个 logstash 用于标记日志并将它们从日志行转换为解析的 JSON。

关于体系结构,您可能还需要考虑一些其他事项,例如安全性、映射和可伸缩性。你可以看看我写的关于如何在生产中部署 ELK 的博客 post (http://logz.io/blog/deploy-elk-production/)

HTH

您可以找到简单的ELK设置(if doesn't need of Redis)。您可以通过下面的 link 了解完整设置以及如何使用 logstash 加载日志并使用 elsticsearch 搜索日志和在 Kibana

中进行可视化

ELK Setup Installation