首页 文章

在三台服务器上设置ELK堆栈的最佳方法

提问于
浏览
3

我期待 Build 一个ELK堆栈,并有三个服务器这样做 . 虽然我找到了大量关于如何实际安装,配置elasticsearch,logstash和kibana的文档和教程,但我发现有关如何在服务器上设置软件以最大限度地提高性能的信息 . 例如,在所有三个实例上设置elasticsearch,logstash和kibana会不会更好,或者可能在两个实例上安装elasticsearch并在第三个实例上安装logstash和kibana?

与该问题相关,如果我的群集中有多个elasticsearch服务器,我是否需要负载均衡器来向他们传播请求,或者我可以将数据发送到一个服务器,它会相应地分发它吗?

1 回答

  • 7

    机器的大小也很重要 . 拥有8GB RAM的三台机器与64GB或更多机器的三台机器大不相同......

    Kibana只占用很少的资源 . Logstash更加耗费CPU . Elasticsearch更重RAM .

    使用elasticsearch集群,您通常需要每个分片的副本以实现冗余 . 这通常是用两台服务器完成的 . 如果您有第三个elasticsearch服务器,那么您将获得IO提升(将两个数据副本写入三个服务器可降低负载) . 此外,偶数个服务器可能会混淆哪个是主人,所以三个将有助于防止“裂脑”问题 .

    这两个或三个节点将是“数据”节点,因此如果您向它们抛出查询或索引请求,它们可能需要将请求移动到不同的服务器(具有数据的服务器等) . 请求还具有“减少”阶段,其中来自每个节点的数据在被返回之前被组合 . 拥有一个较小的“客户端”节点 - 查询和索引请求的位置 - 有助于此 . 当然,你需要两个,以使它们多余 .

    Logstash最好运行多线程,因此有多个cpus,你可以奉献是很好的 . 拥有冗余/负载均衡的logstash机器也很不错 . Kibana也可以在这些机器上运行 .

    所以,我们很快就会有7台机器 . 不是你想听到的,对吧?

    如果你被限制在3台机器上,那么你需要在上面提到的所有三台机器上运行elasticsearch . 你需要在其余部分穿鞋 .

    Logstash on two,kibana on one?然后你对kibana有一个单一的失败点 .

    这三个上的logstash和三个上的kibana怎么样?负载将分布在各处,因此希望每个服务器的增量都很小 . 并且,如果机器足够强大,它应该没问题 .

    我在一个集群中运行logstash的机器,

    一般建议是将1/2系统RAM(最大约31GB)分配给elasticsearch,其余部分留给操作系统 . 如果你要在同一台机器上运行logstash和kibana,你想要降低它(可能是40%?),给logstash一些(15%?)并将其余部分留给操作系统 .

    显然,您的机器尺寸在这里很重要 .

相关问题