前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AWS/华为云Opensearch到Elasticsearch迁移方案

AWS/华为云Opensearch到Elasticsearch迁移方案

原创
作者头像
沈小翊
修改2023-12-01 15:18:20
3150
修改2023-12-01 15:18:20
举报
文章被收录于专栏:大数据生态大数据生态

环境配置

opensearch2.9.0

腾讯云ES 7.14.2白金版

腾讯云logstash 7.14.2 Xpack版

opensearch安装

代码语言:javascript
复制
//下载安装包
wget https://artifacts.opensearch.org/releases/bundle/opensearch/2.9.0/opensearch-2.9.0-linux-x64.tar.gz

tar -zxf opensearch-2.9.0-linux-x64.tar.gz
cd opensearch-2.9.0/config
代码语言:javascript
复制
vim opensearch.yml

#使用如下配置
# 指定集群名称和主机名
cluster.name: opensearch
node.name: node-01

# 禁用交换内存
bootstrap.memory_lock: true

# 修改监听地址,外部机器也可以访问
network.host: 0.0.0.0

# 默认的端口号
http.port: 9200

# 设置单机模式运行
discovery.type: single-node
代码语言:javascript
复制
//进入opensearch安装目录启动opensearch
./opensearch-tar-install.sh

curl -XGET https://localhost:9200 -u 'admin:admin' --insecure
//返回如下则表示启动成功
代码语言:javascript
复制
//创建索引
curl -XPUT https://localhost:9200/test -u 'admin:admin' --insecure

//添加数据
curl -u 'admin:admin' -XPUT "https://localhost:9200/test/_doc/1" -H 'Content-Type: application/json' -d'
{
  "data":100
}'
代码语言:javascript
复制
//更换认证协议
vim config/opensearch.yml
将plugins.security.ssl.http.enabled参数改为false后重启opensearch

此时可以使用http协议访问,且无需使用--insecure参数跳过证书认证

logstash管道配置

使用如下配置同步数据,Logstash需要能访问Opensearch和ES

代码语言:javascript
复制
input {
    elasticsearch {
        hosts => ["http://10.0.2.20:9200"]   
        user => "admin"
        password => "passwd"
        index => "*"
        docinfo => "true"
    }
}
output {
    elasticsearch {
        hosts => ["http://10.0.2.111:9200"]
        user => "elastic"
        password => "passwd"
        index => "%{[@metadata][_index]}"
        document_id => "%{[@metadata][_id]}"
    }
}

Elasticdump同步索引属性

Elasticdump工具只能同步index mapping,settings无法同步。

1. 安装elasticdump工具,版本建议6.76.0及更高版本

代码语言:javascript
复制
[root@tencentos ~]# yum install -y npm
[root@tencentos ~]# npm install -g elasticdump

elasticdump安装细节问题移步:Elasticdump安装问题

2. 仅能同步mapping,settings同步index.replication.type配置不支持报错

代码语言:javascript
复制
elasticdump --input=http://source_ip:9200/test --output=http://elastic:passwd@target_ip:9200/test --type=mapping --timeout=30

elasticdump --input=http://admin:admin@10.0.2.195:9200/test --output=http://elastic:password@10.0.2.95:9200/test --type=settings --timeout=30

报错信息

代码语言:javascript
复制
Thu, 30 Nov 2023 08:30:14 GMT | Error Emitted => {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"unknown setting [index.replication.type] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"}],"type":"illegal_argument_exception","reason":"unknown setting [index.replication.type] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"},"status":400}

3. settings可通过创建模版同步

代码语言:javascript
复制
PUT /_index_template/template1
{
  "index_patterns" : ["*"],
  "priority" : 10,
  "template": {
    "settings": {
      "number_of_shards": "3",
      "number_of_replicas" : "1"
    }
  }
}

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境配置
  • opensearch安装
  • logstash管道配置
  • Elasticdump同步索引属性
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档