同地域ES数据复制

更新时间:
复制为 MD 格式

通过网络负载均衡NLB和私网连接PrivateLink,在同一地域内打通两个Elasticsearch集群的私网,并配置跨集群复制CCR(Cross-Cluster Replication),实现索引数据的近实时同步,满足同地域容灾需求。

前提条件

  • 已在同一地域(如华东1杭州)创建两个Elasticsearch实例,分别作为Leader集群和Follower集群。创建实例的操作,请参见购买阿里云Elasticsearch

  • 两个集群的管控部署模式均为云原生新管控(v3)。如果集群为v1v2架构,需先完成架构升级,请参见实例架构升级

  • 两个集群的版本均为7.10.0及以上,且Follower集群版本不低于Leader集群版本。

方案概述

阿里云ES实例部署在独立的管控VPC内,而非用户VPC中。即使通过CEN打通了同地域用户的不同VPC,也无法直接实现集群间的私网互通。需要在CEN互通的基础上,借助NLBPrivateLink打通两个集群之间的管控VPC网络。整体流程如下:

  1. 通过CEN打通Leader集群和Follower集群所在的VPC网络,如果两个ES在相同VPC中,则可跳过此步骤,直接从步骤二开始。

  2. Follower集群所在VPC中创建NLB,将流量转发到Leader集群的私网IP。

  3. 基于该NLB创建PrivateLink终端节点服务。

  4. Follower集群的ES控制台中配置私网连接,获取PrivateLink域名。

  5. Follower集群的Kibana中添加远程集群,配置CCR。

操作步骤

步骤一:通过CEN打通同地域VPC网络

重要

如果两个ES在相同VPC中,则可跳过此步骤,直接从步骤二开始。

通过云企业网CEN,将Leader集群所在的VPCFollower集群所在的VPC实现互通,详细步骤请参见同地域VPC互通

步骤二:获取Leader集群的私网IP

  1. 登录阿里云Elasticsearch控制台

  2. Leader集群的基本信息页面,找到私网地址字段,复制私网域名。

  3. 通过同VPC内的ECS实例,执行以下命令解析Leader集群的私网IP:

    ping <Leader集群私网域名>

    记录解析出的IP地址,后续步骤中需要使用。

步骤三:创建NLB和服务器组

Follower集群所在的VPC中创建NLB,将流量转发到Leader集群。

重要

请确保已切换到Follower集群所在地域再创建NLB和服务器组。NLB必须与Follower集群在同一地域,否则后续无法创建PrivateLink终端节点服务。

  1. 登录网络型负载均衡NLB控制台

  2. 创建服务器组。

    1. 在左侧导航栏,单击服务器组

    2. 单击创建服务器组,配置以下参数:

      参数

      说明

      服务器组类型

      选择IP类型

      转发端口

      开启全端口转发

      健康检查

      端口填写9300

    3. 在已创建的服务器组中,单击添加后端服务器,添加步骤一中获取的Leader集群私网IP,端口保持默认。

  3. 创建NLB实例和监听。

    NLB购买页的监听配置不支持全端口功能。需要先创建NLB实例(跳过监听配置),然后在实例详情页创建监听时开启全端口功能。

    如已有NLB实例,可直接创建监听;如没有,需先创建NLB实例。

    1. 在左侧导航栏,单击实例,选择或创建NLB实例。

    2. 进入实例详情页,单击监听页签,单击创建监听

    3. 开启全端口功能,监听端口范围选择9200~9300

    4. 服务器组选择IP类型以及上一步创建的服务器组。

步骤四:配置PrivateLink

通过PrivateLink打通Follower集群管控VPCLeader集群的网络。

  1. 登录私网连接PrivateLink控制台

  2. 创建终端节点服务。

    1. 在左侧导航栏,单击终端节点服务

    2. 单击创建终端节点服务,配置以下参数:

      参数

      说明

      服务资源类型

      选择NLB

      服务资源

      选择步骤三中创建或使用的NLB实例。

      可用区

      选择NLB实例所在的可用区。

      自动接受终端节点连接

      选择

  3. Follower集群中添加私网连接。

    1. 登录阿里云Elasticsearch控制台,进入Follower集群的实例详情页。

    2. 在左侧导航栏,选择 配置与管理>安全配置

    3. 集群网络设置区域,单击配置实例私网连接

    4. 单击添加私网连接,选择上一步创建的终端节点服务。

    5. 等待连接状态变为已连接

  4. 获取PrivateLink域名。

    连接成功后,返回PrivateLink控制台,在终端节点服务的终端节点连接状态页签中,查看自动创建的终端节点连接。该连接的域名即为PrivateLink私网域名,后续配置远程集群时使用。

步骤五:配置跨集群复制(CCR)

  1. 进入Follower集群的Kibana,具体步骤请参见通过公网地址登录Kibana(v2/v3部署架构)

    Follower集群的实例详情页,单击左侧导航栏的可视化控制,单击进入Kibana

  2. 添加远程集群。

    1. Kibana左侧菜单中,单击Stack Management

    2. Data区域,单击Remote Clusters

    3. 单击Add a remote cluster,配置以下参数:

      参数

      说明

      Name

      填写Leader集群的实例ID。

      Proxy mode

      开启代理模式。

      Proxy address

      填写步骤四中获取的PrivateLink域名,格式为 <域名>:9300

    4. 单击Save,确认连接状态为Connected

  3. 配置CCR跟随模式。

    CCR支持两种模式:

    模式

    说明

    Follower索引

    针对指定的单个索引进行复制。

    自动跟随模式

    根据索引名称模式自动复制匹配的索引,适合批量同步。

    自动跟随模式创建后,Leader集群中新建的索引数据会自动同步到Follower集群。已有索引不会自动同步,如需同步已有索引,请在Follower集群手动创建Follower索引。

    以自动跟随模式为例:

    1. Stack Management中,单击Cross-Cluster Replication

    2. 选择Auto-follow patterns页签,单击Create an auto-follow pattern

    3. Remote cluster选择上一步添加的远程集群,Index patterns(索引模式)填写 *(复制所有索引)。如只需复制特定索引,可填写具体的索引名称模式,如 logs-*

    4. 单击Create

步骤六:验证数据同步

验证存量索引数据同步

如果在创建自动跟随模式前Leader集群中已有索引,这些索引不会自动同步。需要在Follower集群的Kibana中,通过 Stack Management > Cross-Cluster Replication > Follower Indices 手动创建Follower索引来同步。

手动创建Follower索引后,在Follower集群的Kibana中执行以下命令验证数据是否同步:

GET /<索引名>/_search

如果返回结果与Leader集群一致,说明存量数据已完成同步。

验证增量数据同步

  1. Leader集群的Kibana中,创建新索引并写入文档:

    PUT /test-increment-index
    
    POST /test-increment-index/_doc
    {
        "title": "increment test",
        "content": "This is a test document for CCR incremental sync."
    }
  2. Follower集群的Kibana中,查询该索引:

    GET /test-increment-index/_search

    如果返回的文档内容与写入的一致,说明增量数据已实时同步。

常见问题

远程集群连接状态不是Connected?

检查以下几点:

  • CEN同地域带宽是否已分配,两个VPC之间的网络是否已打通。

  • NLB监听端口范围是否包含9200~9300。

  • 服务器组中的Leader集群私网IP是否正确。

  • 服务器组的健康检查端口是否为9300。

  • PrivateLink终端节点服务的连接状态是否为已连接

同地域CCR的同步延迟是否比同地域更高?

同地域CCR的同步延迟受同地域网络延迟影响,通常比同地域场景略高,但仍可保持在秒级范围内。实际延迟取决于CEN带宽配置、数据量和网络状况。建议根据业务需求合理配置CEN同地域带宽。

CCR对集群版本有什么要求?

Follower集群的版本不能低于Leader集群的版本。两个集群均需为7.10.0及以上版本,且管控部署模式为云原生新管控(v3)。