背景:
- 我们在同一个AWS账户和地区的6.8版上有两个AWS ElasticSearch集群。
- 我们需要将其中一个索引从集群1(源)重新索引到集群2(目标)。
我尝试使用6.8的reindex API,如documentation of ES中所述
POST <https://endpoint of destination Elasticsearch>/_reindex
{
"source": {
"remote": {
"host": "https://endpoint-of-source-elasticsearch-cluster-1.es.amazonaws.com"
},
"index": "source-index-name"
},
"dest": {
"index": "destination-index-name"
}
}
问题:
我正在接近错误
{
"error": {
"root_cause": [
{
"type": "x_content_parse_exception",
"reason": "[8:3] [reindex] failed to parse field [source]"
}
],
"type": "x_content_parse_exception",
"reason": "[8:3] [reindex] failed to parse field [source]",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "[host] must be of the form [scheme]://[host]:[port](/[pathPrefix])? but was [https://endpoint-of-source-elasticsearch-cluster-1.es.amazonaws.com]",
"caused_by": {
"type": "u_r_i_syntax_exception",
"reason": "The port was not defined in the [host]: https://endpoint-of-source-elasticsearch-cluster-1.es.amazonaws.com"
}
}
},
"status": 400
}
可能的原因:
1.根据单据,host参数必须包含方案、主机、端口(如https://otherhost:9200)。
1.必须使用reindex.emote.White elist属性显式地将远程主机列入elasticearch.yaml的白名单
由于我使用的是AWS集群,我不确定如何遵循主机、POST或如何将集群列入白名单的方案,因为我不知道如何在AWS集群上进行这些更改。
请求帮助(如果有解决方法可用)。谢谢,
4条答案
按热度按时间7d7tgy0s1#
遗憾的是,在AWS管理的Elasticearch中,您将不能修改静态配置设置,如reindex.emote.White elist参数,因为要配置reindex.emote.White elist参数,需要修改ElasticSearch.yml文件。这是因为AWS ES托管服务,而目前客户无法访问操作系统/文件系统。
作为替代方案,
1.您可以获取以前域的manual snapshot并将其恢复为新域。与从远程重新建立索引相比,这种方法一次只影响一个域,即快照的来源域或将快照恢复到的域。
1.您还可以将Logstash与Elasticearch input和output插件一起使用,从本质上从原始域中的索引读取数据,并将其索引到任何其他/index domain中。
rqqzpn5f2#
从未设法在AWS ES中使用远程重新索引功能,它就是不起作用。
好的旧elasticdump从不失败:
要在没有sudo的情况下安装,请执行以下操作:
hc2pp10m3#
AWS Elasticearch v7.9现在支持远程重新索引,您只需发出一个重新索引命令,例如:
您必须在远程域终结点的末尾添加443以进行验证检查。
要验证索引是否已复制到本地域,请执行以下操作:
如果远程索引位于与本地域不同的区域,则传入其区域名称,例如在以下示例请求中:
注意:1-您必须在源地址中包括端口
2-使用AWS Elasticearch,您不再需要像使用标准Elasticearch那样将源IP/地址列入白名单,AWS Elasticearch假定通过发出此命令,源地址是可信的。
此处提供ElasticSearch AWS文档以供参考:https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/remote-reindex.html
4c8rllxm4#
如果要从不是OpenSearch域本身的远程设备重建索引,请记住添加
"external": true
。