我正在尝试使用ELK构建日志分析系统。我看到很多以不同方式使用ELK的架构。其中一个是
Logstash-> Redis-> Logstash-> Elasticseach-> Kibana
第一个Logstash用于收集日志,第二个Logstash用于过滤日志。
我对Redis不是很清楚,我们必须使用它吗?为什么不使用Kafka?
答案 0 :(得分:3)
两个logstash实例之间的redis是一个缓冲区,只是在弹性搜索或logstash索引器关闭的情况下。
根据您使用logstash处理的内容,您可能不需要它。如果您正在读取日志文件,则当logstash(索引器)不堪重负时,logstash(发货人)将停止发送日志。这样,您就可以获得分布式缓存(在日志文件中!)。
如果您正在使用一次性事件(例如来自网络设备的陷阱或系统日志),那么像redis或rabbitmq这样的缓冲区对于存储它们非常重要,直到logstash(索引器)可用为止。
答案 1 :(得分:0)
第二个logstash用于标记日志并将其从日志行转换为已解析的JSON。
关于体系结构,您可能还需要考虑其他一些事项,如安全性,映射,可伸缩性。您可以查看我撰写的关于如何在生产中部署ELK的博客文章(http://logz.io/blog/deploy-elk-production/)
HTH
答案 2 :(得分:0)
您可以找到简单的 ELK设置(if doesn't need of Redis
)。您可以通过以下链接进行完整设置,以及如何使用 logstash 加载日志,并使用 elsticsearch 搜索日志,并在 Kibana中进行可视化强>