利用CCR+Reindex跨集群同步阿里云ES数据

ES Version: 7.10.0

目录:
一、业务需求背景
二、RDS相关配置确认
三、CCR(Cross-Cluster Replication)配置
四、Reindex配置
五、新增角色及账号
六、参考文档

一、业务需求背景

1.由于种种原因,测试需要同步生产ES数据至测试ES集群,且需要过滤部分数据后供测试使用(只读即可),索引数据总量10w+,过滤后数据量1w+。
2.实例是购买的阿里云ES服务,且于新网络架构(2020年10月及之后)下购买的,故无法支持跨集群reindex功能,但是可以在同一实例执行reindex。官方链接见文末参考文档。
3.于是考虑CCR(将整个索引同步到测试ES),再Reindex过滤数据到新索引(需要定期去reindex,同步频率沟通为半小时一次),新建ES账号控制索引权限,再开放给测试使用。
4.同步流程大致为下:


image.png
二、RDS相关配置确认

1.需要确保两个ES集群在同一个VPC下
2.配置实例网络互通,配置其中一个ES集群即可,另外一个会自动设置。


image.png
三、CCR(Cross-Cluster Replication)配置

1.登录ES Kibana(购买ES时默认部署)


image.png

2.添加远程ES数据源(即被同步的ES集群)在测试ES集群操作。


image.png

image.png

3.添加同步索引
image.png

稍等片刻之后,索引的同步状态即将变成 Active。查看文档数量,两边一致,同步完成。

四、Reindex配置

1、首先要在测试环境新建索引 chat,字段类型保持与源端一致。
2、编写同步脚本 syncEsData.sh,过滤数据的 "query" 根据需求编写。
3、部署crontab,每半小时执行一次。

#!/bin/bash 

curl -XPOST -u elastic:xxxxxxxxx 'http://xxxxxxxx:9200/_reindex?pretty'   -H 'Content-Type: application/json'  -d '
{
    "source": {
        "index": "follow_chat",
        "query": {
        "bool": {
            "should": [
                {
                    "terms": {
                        "from.keyword": ["AAAAA","BBBBB","CCCCC"]
                    }
                },
                {
                    "terms": {
                        "tolist.keyword": [
                            "AAAAA","BBBBB","CCCCC"
                        ]
                    }
                }
            ]
        }
    }
    },
    "dest": {
        "index": "chat"
    }
}'

五、新增角色及账号

新增角色是为了控制测试人员查看全量数据的索引 follow_chat,如果之前是使用的elastic账号,则需要回收替换账号。

#### 新增角色,只能操作索引chat
curl -XPOST -u elastic:xxxxxxxxx  'xxxxxxx:9200/_xpack/security/role/roleName' -H "Content-Type: application/json" -d '{ "indices":[{"names":["chat"],"privileges":["all"]}]}'   

#### 新增user,赋权上面创建的角色
curl -XPOST -u elastic:xxxxx 'xxxxxx:9200/_xpack/security/user/newUser' -H "Content-Type: application/json" -d '{
  "password" : "xxxxxxxxxxxxxxx",
  "roles" : [ "roleName" ]
}'
六、参考文档

https://help.aliyun.com/document_detail/175973.html
https://help.aliyun.com/document_detail/176854.html

你可能感兴趣的:(利用CCR+Reindex跨集群同步阿里云ES数据)