elasticsearch 如何在一台服务器上使用不同的数据设置多个弹性搜索实例?
我们公司使用弹性搜索和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 如何在一台服务器上使用不同的数据设置多个弹性搜索实例?,elasticsearch,kibana,elasticsearch,Kibana,我们公司使用弹性搜索和Kibana。我想创建第二个运行在同一台服务器上但在不同JVM中的弹性搜索实例-让我们将它们称为a和B。我希望a有一个名为other_logs的索引,B有一个名为batch的索引。我希望能够通过一个kibana实例搜索它们,并设置可以读取任意JVM上任意一个索引的仪表板。写入A的数据不应写入B,反之亦然 原因是我们有一些批处理作业依赖于ES,ES有点不稳定,导致批处理作业失败。该批处理向ES读取/写入的数据非常少,但应用程序的其余部分写入了大量日志,导致了不稳定性。如果我们
关于如何完成配置,有什么建议吗?我走对了吗?我想我至少在自己的本地测试机上证明了一切。基本上,我所做的是创建了第二个集群,它可以在同一台机器上运行,并且具有独立的配置文件。通过更改文件夹,我还可以设置独立的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
- 设置ES_PATH_CONF=..\configB
PUT _cluster/settings
{
"persistent": {
"cluster": {
"remote": {
"CluserB": {
"seeds": [
"127.0.0.1:9301"
]
}
}
}
}
}
4) 。在新ES集群中创建的数据(PUT/batch/_doc/1{…})
5) 。在kibana中,创建一个新的索引模式,并引用远程集群和索引,如ClusterB:batch
6) 。使用新的远程索引模式创建仪表板