Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何对 OpenSearch Service 集群上的跨集群复制失败进行故障排除?
我的 Amazon OpenSearch Service 集群上的跨集群复制无法正常工作。
解决方法
确保遵守跨集群连接配置和权限要求。
**注意:**无法对数据流使用跨集群复制。有关详细信息,请参阅 OpenSearch 网站上的 Data streams(数据流)。如果您使用 AWS PrivateLink,则无法在 AWS 区域之间使用跨集群搜索。
检查复制任务状态以确定复制失败的原因
要检查复制任务的状态,请在跟随域上运行以下命令:
GET _plugins/_replication/index_name/_status
**注意:**请将 index-name 替换为您的索引名称。
输出示例:
{ "status" : "PAUSED", "reason" : "Paused by AWS due to burstable instance type", "leader_alias" : "connection1", "leader_index" : "test-leader-index", "follower_index" : "test-follower-index" }
在输出中,记下 reason 的值,以确定可以采取哪些操作来解决复制失败问题。例如,要解决示例输出中的问题,请使用非可突增的 Amazon Elastic Compute Cloud (Amazon EC2) 实例类型。
解决自动跟随失败问题
您可以使用自动跟随复制规则,根据模式复制索引。自动跟随规则会定期检查领导域中是否有新索引,以自动复制与某个模式匹配的索引。
检查自动跟随失败的原因
如果您激活了 OpenSearch Service 域的错误日志,请搜索 AutoFollowTask 和 IndexReplicationTask 关键字,以识别自动跟随复制错误。有关详细信息,请参阅 Viewing OpenSearch Service error logs(查看 OpenSearch Service 错误日志)。
要检查自动跟随复制规则的状态,请在跟随域上运行以下命令:
GET _plugins/_replication/autofollow_stats
在输出中,检查 failed_indices 值以识别失败的索引。
输出示例:
{ "num_success_start_replication" : 1, "num_failed_start_replication" : 0, "num_failed_leader_calls" : 0, "failed_indices" : [ ".kibana_2", ".opendistro-reports-definitions", ".opendistro-reports-instances", ".kibana_3" ], "autofollow_stats" : [ { "name" : "rule1", "pattern" : "*", "num_success_start_replication" : 1, "num_failed_start_replication" : 0, "num_failed_leader_calls" : 0, "failed_indices" : [ ".kibana_2", ".opendistro-reports-definitions", ".opendistro-reports-instances", ".kibana_3" ], "last_execution_time" : 1679381247239 } ] }
要获取有关特定索引的详细信息,请在跟随域上运行以下命令:
GET _plugins/_replication/index_name/_status?pretty
**注意:**请将 index_name 替换为您的索引名称。
要获取失败索引的列表,请在跟随域上运行以下命令:
GET _cluster/state?pretty&filter_path=metadata.replication_metadata
在输出中,检查 REPLICATION_LAST_KNOWN_OVERALL_STATE 为 FAILED 的索引。
对失败索引进行故障排除
完成以下步骤:
- 要停止对失败索引的复制,请在跟随域上运行以下命令:
**注意:**请将 failed_index_name 替换为处于 FAILED 状态的索引的名称。POST _plugins/_replication/failed_index_name/_stop { } - 要删除索引,请在跟随域上运行以下命令:
**注意:**请将 failed_index_name 替换为处于 FAILED 状态的索引的名称。DELETE failed_index_name - 要删除自动跟随规则,请在跟随域上运行以下命令:
**注意:**请将 connection_alias 替换为您的连接别名,将 rule_name 替换为自动跟随规则名称。要查找连接别名,请查看您的域控制面板的 Connections(连接)选项卡。DELETE _plugins/_replication/_autofollow { "leader_alias" : "connection_alias", "name": "rule_name" } - 要使用您的索引模式重新创建自动跟随规则,请在跟随域上运行以下命令:
**注意:**请将 connection_alias 替换为您的连接别名,将 rule_name 替换为您的规则名称,将 index_pattern 替换为您的索引模式。此外,请将 leader_cluster_role 替换为领导集群角色,将 follower_cluster_role 替换为跟随集群角色。POST _plugins/_replication/_autofollow { "leader_alias": "connection_alias", "name": "rule_name", "pattern": "index_pattern", "use_roles": { "leader_cluster_role": "leaderclusterrole", "follower_cluster_role": "followerclusterrole" } }
检查复制延迟
查看您的 Amazon CloudWatch 跨集群复制指标,以识别跨集群复制延迟问题。
对于延迟较高的领导域和跟随域,检查并解决 Java 虚拟机 (JVM) 内存压力过高的问题。如果域状态正常,请检查 LeaderCheckPoint 和 FollowerCheckPoint CloudWatch 指标,以确定延迟是在增加还是保持稳定。如果 LeaderCheckPoint 和 FollowerCheckPoint 指标正常,则可能是跟随域的 IndexingRate 过高。要加快同步阶段,请停止并重启复制。有关说明,请参阅“暂停并重启复制”。
确认复制是否正在进行以及是否存在延迟。如果领导域和跟随域的检查点相同,则表示复制正在同步进行。
要检查跟随域和领导域的索引复制状态,请对跟随域和领导域运行以下命令:
GET _plugins/_replication/follower_stats?pretty GET _plugins/_replication/leader_stats?pretty
要确定复制是否完成,请在跟随域上运行以下命令:
GET _cat/indices
在输出中,检查领导分片和跟随分片的索引列表是否相同。如果不同,则表示复制仍在进行中。
暂停并重启复制
您可以暂时暂停复制以修复问题、减少领导域上的负载或更新领导域。
要暂停复制,请在跟随域上运行以下命令:
POST _plugins/_replication/index_name/_pause { }
**注意:**请将 index_name 替换为您的索引名称。
要重启复制,请在跟随域上运行以下命令:
POST _plugins/_replication/index_name/_resume { }
**注意:**请将 index_name 替换为您的索引名称。
复制暂停超过 12 小时后,将无法恢复。在这种情况下,必须停止复制、删除跟随索引并重新启动对领导索引的复制。
**重要事项:**停止复制后,跟随索引将不再跟随领导索引,而成为一个标准索引。停止复制后,将无法重新启动。
要停止复制,请在跟随域上运行以下命令:
POST _plugins/_replication/index_name/_stop { }
**注意:**请将 index_name 替换为您的索引名称。
相关信息
- 语言
- 中文 (简体)
