elasticsearch 如何在一台服务器上使用不同的数据设置多个弹性搜索实例?,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch 如何在一台服务器上使用不同的数据设置多个弹性搜索实例?,elasticsearch,kibana,elasticsearch,Kibana" />

elasticsearch 如何在一台服务器上使用不同的数据设置多个弹性搜索实例?

elasticsearch 如何在一台服务器上使用不同的数据设置多个弹性搜索实例?,elasticsearch,kibana,elasticsearch,Kibana,我们公司使用弹性搜索和Kibana。我想创建第二个运行在同一台服务器上但在不同JVM中的弹性搜索实例-让我们将它们称为a和B。我希望a有一个名为other_logs的索引,B有一个名为batch的索引。我希望能够通过一个kibana实例搜索它们,并设置可以读取任意JVM上任意一个索引的仪表板。写入A的数据不应写入B,反之亦然 原因是我们有一些批处理作业依赖于ES,ES有点不稳定,导致批处理作业失败。该批处理向ES读取/写入的数据非常少,但应用程序的其余部分写入了大量日志,导致了不稳定性。如果我们

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

原因是我们有一些批处理作业依赖于ES,ES有点不稳定,导致批处理作业失败。该批处理向ES读取/写入的数据非常少,但应用程序的其余部分写入了大量日志,导致了不稳定性。如果我们不能读取日志,这是一个小问题,但如果批处理失败,这是一个大问题。因此,为了在短期内解决ES不稳定性问题,我想将批处理依赖关系转移到一个新的JVM(ES实例B),它应该更小、更稳定

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


关于如何完成配置,有什么建议吗?我走对了吗?

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

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

为子孙后代着想,以下是详细信息:

1) 。在elastic search to configB下创建了复制的配置文件夹,并编辑了elasticsearch.yml:

  • cluster.name:ClusterB
  • path.data:dataB
  • path.logs:logsB
  • http.port:9201
  • 运输港口:9301
2) 。自从在windows上测试以来,我将elasticsearch.bat复制到elasticsearchB.bat,并在顶部添加了它(linux有一些不同的方法来传递配置目录)。这允许新批处理文件使用其自己的配置目录,而ES的所有其他文件夹保持不变(因此升级ES将升级两个实例):

  • 设置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) 。使用新的远程索引模式创建仪表板