跳至内容

如何对 OpenSearch Service 集群上的跨集群复制失败进行故障排除?

2 分钟阅读
0

我的 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 域的错误日志,请搜索 AutoFollowTaskIndexReplicationTask 关键字,以识别自动跟随复制错误。有关详细信息,请参阅 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_STATEFAILED 的索引。

对失败索引进行故障排除

完成以下步骤:

  1. 要停止对失败索引的复制,请在跟随域上运行以下命令:
    POST _plugins/_replication/failed_index_name/_stop
    { }
    **注意:**请将 failed_index_name 替换为处于 FAILED 状态的索引的名称。
  2. 要删除索引,请在跟随域上运行以下命令:
    DELETE failed_index_name
    **注意:**请将 failed_index_name 替换为处于 FAILED 状态的索引的名称。
  3. 要删除自动跟随规则,请在跟随域上运行以下命令:
    DELETE _plugins/_replication/_autofollow
    {
        "leader_alias" : "connection_alias",
        "name": "rule_name"
    }
    **注意:**请将 connection_alias 替换为您的连接别名,将 rule_name 替换为自动跟随规则名称。要查找连接别名,请查看您的域控制面板的 Connections(连接)选项卡。
  4. 要使用您的索引模式重新创建自动跟随规则,请在跟随域上运行以下命令:
    POST _plugins/_replication/_autofollow
    {
        "leader_alias": "connection_alias",
        "name": "rule_name",
        "pattern": "index_pattern",
        "use_roles": {
            "leader_cluster_role": "leaderclusterrole",
            "follower_cluster_role": "followerclusterrole"
        }
    }
    **注意:**请将 connection_alias 替换为您的连接别名,将 rule_name 替换为您的规则名称,将 index_pattern 替换为您的索引模式。此外,请将 leader_cluster_role 替换为领导集群角色,将 follower_cluster_role 替换为跟随集群角色。

检查复制延迟

查看您的 Amazon CloudWatch 跨集群复制指标,以识别跨集群复制延迟问题。

对于延迟较高的领导域和跟随域,检查并解决 Java 虚拟机 (JVM) 内存压力过高的问题。如果域状态正常,请检查 LeaderCheckPointFollowerCheckPoint CloudWatch 指标,以确定延迟是在增加还是保持稳定。如果 LeaderCheckPointFollowerCheckPoint 指标正常,则可能是跟随域的 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 替换为您的索引名称。

相关信息

OpenSearch Service 的跨集群复制

Ensure availability of your data using cross-cluster replication with OpenSearch Service(通过 OpenSearch Service 的跨集群复制确保数据的可用性)

AWS 官方已更新 4 个月前