我正在尝试为弹性堆栈实现建立最佳架构。
我们在每个网络上都有两个不同的网络(让我们称之为内部和外部)和几个web / db /应用服务器(大约10个)。
我想从两个网络中的计算机上使用IIS日志,我们的rabbitMQ消息以及其他一些位和bob,并将它们发送到我的弹性和kibana安装所在的内部网络上的单个服务器。
对于内部和外部网络上的服务器,我可以看到两种主要方法来将日志发送到弹性。
目前我不确定这些方法的优缺点。我相信正确的方法是使用Filebeats,但我不知道为什么我不会只将logstash放在多个地方,因为我觉得我会更好地分发日志处理。 那么,或许有一个带有20-30个输入的logstash不是问题吗?
对此领域的任何想法或指导感兴趣。
答案 0 :(得分:1)
从我在文档中看到的内容来看,Logstash在内存方面比Filebeat要求更高,特别是如果你对日志进行某种处理(比如grok解析)。 Logstash至少代表一个JVM(使用JRuby)。对于filebeat,我认为它的占用空间要小得多,因为它针对发货日志进行了优化(我从未使用它,所以我不能说)。
此外,它还会使您希望对Logstash实例或其配置进行的任何更新变得复杂。
对于集中式Logstash,优势在于可以轻松更改Elasticsearch实例的地址,重定向到像redis这样的缓存或添加其他输出。我还发现Logstash(在版本2. +中)需要频繁重启,所以如果你只有一个实例可以处理它会更容易。
我从未使用过多次输入的Logstash,所以我不能说。
在我负责日志集中系统的工作中,我们使用beaver(等效的文件)将日志发送到redis服务器,我们有两个或三个Logstash服务器将所有内容发送到Elasticsearch。以上所有评论都来自那个时期。