对象存储迁移
通过对象存储完成数据迁移,可将 Elasticsearch 数据迁移到新 ELK 应用继续使用。
注意 |
---|
数据迁移过程,请暂停数据写操作,避免数据不一致,建议在业务低峰期执行。 |
本小节主要介绍如何导出远端数据库数据和如何将数据导入 MySQL Plus 集群。
前提条件
-
已获取管理控制台登录账号和密码,且已获取集群操作权限。
-
已创建 ELK 集群,且集群状态为
活跃
。 -
已创建对象存储,并已获取对象存储 bucket、endpoint 等信息。
-
已创建 API 密钥,并已获取 access_key 和 secret_key。
操作步骤
-
通过如下命令为源 Elasticsearch 集群创建 repository。
curl -XPUT 'http://<源 Elasticsearch 的 IP 地址>:9200/_snapshot/repo-/' -d' { "type": "s3", "settings": { "endpoint": "s3.jn1.is.shanhe.com", "access_key": "<YourAccessKey>", "secret_key": "<YourSecretKey>", "bucket": "my_stor_bucket" } } '
上述命令必须指定的几个关键参数包括:
参数 | 说明 |
---|---|
集群节点地址 |
<原云平台大数据平台的 Elasticsearch=集群的某一节点的 IP 地址>需替换为具体的 IP 地址 |
repository |
repo-stor |
endpoint |
s3.jn1.is.shanhe.com (请就近选择 jn1a, jn2a 中的一个) |
access_key |
云平台账号关联的 access_key |
secret_key |
云平台账号关联的 secret_key |
bucket |
对象存储上 bucket 名称 my_stor_bucket (如果不存在将创建出来) |
-
创建了 repository 后,用如下命令即可创建名为 backup-2019.05.13 的快照(该快照将会存放在之前指定的对象存储的 bucket my_stor_bucket 中)。
创建包含集群所有 index 的 snapshot curl -XPUT 'http://<原云平台大数据平台的 Elasticsearch 集群的某一节点的IP地址>:9200/_snapshot/repo-stor/migration-2019.05.13?wait_for_completion=true'
-
在 ELK 集群上创建和第一步中相同配置的 repository。命令如下:
curl -H 'Content-Type: application/json' -XPUT 'http://<ELK集群的某一节点的IP地址>:9200/_snapshot/repo-stor/' -d' { "type": "s3", "settings": { "endpoint": "s3.jn1.is.shanhe.com", "access_key": "<YourAccessKey>", "secret_key": "<YourSecretKey>", "bucket": "my_stor_bucket" } } '
说明 这里只有 IP 地址需变更为 ELK 集群的某一节点的 IP 地址,其他配置应与第四步中的配置完全相同。
-
通过如下命令恢复存储在对象存储的快照到 ELK 集群,完成数据迁移。
curl -H 'Content-Type: application/json' -XPOST 'http://<ELK集群的某一节点的IP地址>:9200/_snapshot/repo-stor/migration-2019.05.13/_restore'