多个Logstash实例与Filebeats

时间:2017-07-25 15:17:27

标签: elasticsearch logstash filebeat

我正在尝试为弹性堆栈实现建立最佳架构。

我们在每个网络上都有两个不同的网络(让我们称之为内部和外部)和几个web / db /应用服务器(大约10个)。

我想从两个网络中的计算机上使用IIS日志,我们的rabbitMQ消息以及其他一些位和bob,并将它们发送到我的弹性和kibana安装所在的内部网络上的单个服务器。

对于内部和外部网络上的服务器,我可以看到两种主要方法来将日志发送到弹性。

  1. 在每台服务器上设置logstash,并将输出发送到内部网络上的弹性服务器。
  2. 在每台服务器上设置文件并将日志发送到运行logstash的单个服务器(这可能是托管弹性和kibana的同一个框)
  3. 目前我不确定这些方法的优缺点。我相信正确的方法是使用Filebeats,但我不知道为什么我不会只将logstash放在多个地方,因为我觉得我会更好地分发日志处理。 那么,或许有一个带有20-30个输入的logstash不是问题吗?

    对此领域的任何想法或指导感兴趣。

1 个答案:

答案 0 :(得分:1)

从我在文档中看到的内容来看,Logstash在内存方面比Filebeat要求更高,特别是如果你对日志进行某种处理(比如grok解析)。 Logstash至少代表一个JVM(使用JRuby)。对于filebeat,我认为它的占用空间要小得多,因为它针对发货日志进行了优化(我从未使用它,所以我不能说)。

此外,它还会使您希望对Logstash实例或其配置进行的任何更新变得复杂。

对于集中式Logstash,优势在于可以轻松更改Elasticsearch实例的地址,重定向到像redis这样的缓存或添加其他输出。我还发现Logstash(在版本2. +中)需要频繁重启,所以如果你只有一个实例可以处理它会更容易。

我从未使用过多次输入的Logstash,所以我不能说。

在我负责日志集中系统的工作中,我们使用beaver(等效的文件)将日志发送到redis服务器,我们有两个或三个Logstash服务器将所有内容发送到Elasticsearch。以上所有评论都来自那个时期。