【问题标题】:Multiple Logstash instances vs Filebeats多个 Logstash 实例与 Filebeats
【发布时间】:2017-07-25 23:54:35
【问题描述】:

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

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

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

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

  1. 在每台服务器上设置logstash,并将输出发送到内网的弹性服务器。
  2. 在每台服务器上设置 filebeats 并将日志发送到运行 logstash 的单个服务器(这可能是托管 elastic 和 kibana 的同一台服务器)

目前我不确定这些方法的优缺点。我相信正确的方法是使用 Filebeats,但我不知道为什么我不会将 logstash 放在多个地方,因为看起来我会更好地分配日志处理。 话又说回来,也许拥有一个具有 20-30 个输入的 logstash 不是问题?

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

【问题讨论】:

    标签: elasticsearch logstash filebeat


    【解决方案1】:

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

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

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

    我从来没有使用过多输入的 Logstash,所以我不能说。


    在我负责日志集中系统的工作中,我们使用 beaver(相当于 filebeat)将日志发送到 redis 服务器,并且我们有两三个 Logstash 服务器将所有内容发送到 Elasticsearch。以上所有的cmets都来自那个时期。

    【讨论】:

    • 很好的信息,我认为集中的logstash配置管理对我来说已经足够了。听说有多个 logstash 重新启动,这有点令人失望,但也许我们不会遇到这种情况!
    • @dougajmcdonald 对于重新启动,它使用的是旧版本 (2.+),而不是当前可用的版本 (5.5)。而且我认为部署它们的服务器对于工作负载来说不够强大(尤其是我们应用于某些日志的配置)。所以是的,你可能没有同样的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 2021-08-18
    • 2011-09-02
    • 1970-01-01
    相关资源
    最近更新 更多