【问题标题】:How can I set up multiple elastic search instances on one server with different data?如何在具有不同数据的一台服务器上设置多个弹性搜索实例?
【发布时间】:2020-06-14 21:34:26
【问题描述】:

我们在我的公司使用 Elastic Search 和 Kibana。我想创建第二个弹性搜索实例,在同一台服务器上但在不同的 JVM 中运行 - 让我们称它们为 A 和 B。我希望 A 有一个名为 other_logs 的索引,B 有一个名为 batch 的索引。我希望能够通过单个 kibana 实例搜索它们,并设置可以读取任一 JVM 上的任一索引的仪表板。写入 A 的数据不应写入 B,反之亦然。

原因是我们有一些依赖 ES 的批处理作业,而 ES 有点不稳定导致批处理作业失败。批处理向 ES 读取/写入的数据非常少,但应用程序的其余部分写入了大量日志并导致不稳定。如果我们无法读取日志,这是一个小问题,但如果批处理失败则是一个主要问题。因此,在我们查看 ES 不稳定性时,为了短期修复,我想将批处理依赖项移动到应该更小且更稳定的新 JVM(ES 实例 B)。

我假设我需要第二个 ES 实例以不同的集群名称运行,否则数据将被复制。在测试这个时,我看到了一些例外,所以不确定我是否朝着正确的方向前进。我正在研究“跨集群搜索”,它看起来可能允许我保留一个 kibana 并搜索两个集群,但对 ES 或 Kibana 的经验为零,并且没有太多时间来研究这个。

关于如何完成配置的任何建议?我走对了吗?

【问题讨论】:

    标签: elasticsearch kibana


    【解决方案1】:

    我想我至少在我自己的本地测试机器上证明了一切。基本上我所做的是创建了第二个集群,它可以在同一台机器上运行并具有独立的配置文件。通过更改文件夹,我还可以设置独立的 jvm.options,因为我希望新集群的内存更少。一旦它工作了,我配置了单个 kibana 实例以了解新集群,然后创建了一个索引模式,以便我可以搜索它。此处讨论了跨集群搜索,您可以在搜索中直接引用新的“远程”集群: https://www.elastic.co/guide/en/elasticsearch/reference/6.6/modules-remote-clusters.html

    端口 9300 是集群上所有节点用于相互通信的默认端口,因此我将新集群更改为使用 9301。默认情况下,它首先扫描 9300,然后抛出异常,然后扫描 9301。所以它在没有硬编码到 9301 的情况下工作,但我不喜欢在日志中看到异常,我想控制使用哪个端口。

    为了后代的缘故,这里有详细信息:

    1)。在elasticsearch下创建了一个复制的config文件夹到configB并编辑了elasticsearch.yml:

    • cluster.name:ClusterB
    • path.data: 数据B
    • path.logs:logsB
    • http.port: 9201
    • transport.port: 9301

    2)。由于在 Windows 上进行测试,我将 elasticsearch.bat 复制到 elasticsearchB.bat 并将其添加到顶部(linux 有一些不同的方法来传递配置目录)。这允许新的批处理文件使用自己的配置目录,而 ES 的所有其他文件夹保持不变(因此升级 ES 将升级两个实例):

    • SET ES_PATH_CONF=..\configB

    3)。使用 elasticsearch.bat 和 elasticsearch2.bat 启动两个弹性搜索实例

    4)。启动 kibana 的单个实例,默认指向 9200

    5)。在 kibana 中,通过在开发工具中运行它来修改集群设置:

    PUT _cluster/settings
    {
      "persistent": {
        "cluster": {
          "remote": {
            "CluserB": {
              "seeds": [
                "127.0.0.1:9301"
              ]
            }
          }
        }
      }
    }
    

    4)。在新的 ES 集群中创建数据(PUT /batch/_doc/1 {...} )

    5)。在 kibana 中创建一个新的索引模式并像这样 ClusterB:batch 引用远程集群和索引

    6)。使用新的远程索引模式创建仪表板

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多