如何通过API删除OpenSearch集群的跨集群搜索设置
如何通过API禁用OpenSearch的跨集群搜索功能
我按照OpenSearch官方指南搭建了带有跨集群搜索(Cross Cluster Search)的集群,现在需要禁用该功能。我没有节点或底层虚拟机的访问权限,只能通过curl和API操作。
当前集群配置
配置跨集群搜索的命令
# 配置跨集群搜索 curl -k -XPUT -H 'Content-Type: application/json' -u 'admin:admin' 'https://my-cluster-hostname:9200/_cluster/settings' -d ' { "persistent": { "cluster.remote": { "cross-cluster-name": { "seeds": ["cross-cluster-node-01:9300", "cross-cluster-node-02:9300", "cross-cluster-node-03:9300", "cross-cluster-node-04:9300" ] } } } }'
查询当前集群配置的命令及结果
# 查询集群配置 curl -XGET -k -u 'admin:admin' 'https://my-cluster-hostname:9200/_cluster/settings?pretty'
输出结果:
{ "persistent" : { "cluster" : { "remote" : { "cross-cluster-name" : { "seeds" : [ "cross-cluster-node-01:9300", "cross-cluster-node-02:9300", "cross-cluster-node-03:9300", "cross-cluster-node-04:9300" ] } } } }, "transient" : { } }
已尝试的无效操作
尝试直接删除配置
# 尝试删除所有配置 curl -XDELETE -k -u 'admin:admin' 'https://my-cluster-hostname:9200/_cluster/settings'
输出错误:
{"error":"URI [/_cluster/settings] 使用了错误的HTTP方法 [DELETE],允许的方法为:[PUT, GET]","status":405}
尝试用空配置覆盖
# 尝试用空配置覆盖 curl -k -XPUT -H 'Content-Type: application/json' -u 'admin:admin' 'https://my-cluster-hostname:9200/_cluster/settings' -d ' { "persistent": { "cluster" : { "remote" : {} } }, "transient" : { } }'
输出错误:
{"error":{"root_cause":[{"type":"action_request_validation_exception","reason":"验证失败:1: 无配置可更新;"}],"type":"action_request_validation_exception","reason":"验证失败:1: 无配置可更新;"},"status":400}
正确解决方案
要移除远程集群配置以禁用跨集群搜索,需将目标远程集群的seeds设置为null,执行以下命令:
curl -k -XPUT -H 'Content-Type: application/json' -u 'admin:admin' 'https://my-cluster-hostname:9200/_cluster/settings' -d ' { "persistent": { "cluster.remote": { "cross-cluster-name": { "seeds": null } } } }'
内容的提问来源于stack exchange,提问作者Anemun
相关产品推荐
相关产品推荐

