【最佳实践】Logstash高效的数据索引迁移能力—如何实现从腾讯云Elasticsearch迁移至阿里云

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 本文为您介绍通过Logstash,将Elasticsearch(简称ES)索引从腾讯云ES迁移至阿里云ES中的方法。

本文字数:1655
阅读时间:3~5分钟

以下是正文


搜索钉钉群号:21737292 ,加入阿里云Elasticsearch官方社群

迁移方案选取

由于腾讯云ES版本与阿里云ES版本不一致,需要选择兼容的版本进行迁移,本文支持的版本方案如下(其他方案不保证兼容):

  • 腾讯云ES 5.6.4 -> ECS(Logstash 5.6.x)-> 阿里云ES 5.5.6
  • 腾讯云ES 6.4.3 -> ECS(Logstash 6.7.0)-> 阿里云ES 6.7.0
  • 腾讯云ES 6.4.3 -> 阿里云Logstash 6.7.0 -> 阿里云ES 6.7.0(本文以此为例)

注意 由于腾讯云ES版本分别与阿里云ES版本不一致,所以建议您在大版本内进行数据同步,不建议跨大版本同步。关于Logstash版本选取详情,请参见[Support Matrix](链接地址https://www.elastic.co/cn/support/matrix#matrix_compatibility

解决方案

您可以通过以下步骤来迁移Elasticsearch索引:

  1. 创建阿里云Elasticsearch实例阿里云Logstash实例。在迁移过程中,需要连接公网才能与腾讯云ES互通。由于Logstash实例部署在VPC下,可以通过配置NAT网关实现与公网的连通,详情请参见公网数据导入和导出常见问题
    说明 对于自建的Logstash,需要购买与阿里云ES在同一可用区、同一VPC下的ECS实例(已符合条件的ECS不需要重复购买,需要绑定弹性公网IP)。您也可以购买经典网络的ECS实例(不建议),但需要配置Classiclink,实现通过经典网络访问专有网络中的阿里云ES,详情请参见通过经典网络访问ES常见问题
  2. 创建腾讯云ES实例,并搭建腾讯云代理服务器。由于腾讯云Elasticsearch不支持公网直接访问,因此您需要准备cvm服务器搭建nginx代理,详情请参见外网访问腾讯ES集群
  3. 修改Logstash的yml文件配置。目前阿里云Logstash只支持通过kibana方式,修改yml文件的pipeline配置,详情请参见通过Kibana配置Pipeline。您也可以使用自建Logstash,需要安装JDK(1.8及以上版本)以及相应版本的Logstash,然后在Logstash的conf下配置yml文件,并启动服务,详情请参见Logstash部署
  4. 在目标端使用`
    GET /_cat/indices?v

` 查看索引是否迁移成功。
本案例以使用阿里云Logstash,将Elasticsearch(简称ES)索引从腾讯云ES迁移至阿里云ES中为例,具体实施步骤如下。

配置Logstash pipeline

以下为您介绍使用阿里云Logstash,通过Kibana方式配置pipeline的方法。
在配置pipeline前,您需要首先完成迁移方案选取,以及解决方案概述中的前两步。

说明 您也可以使用自建Logstash,需要安装JDK(1.8及以上版本)以及相应版本的Logstash,然后在Logstash的conf下配置yml文件,并启动服务,详情请参见Logstash部署。

  1. 登录ES实例的Kibana控制台
  2. 单击左侧导航栏的Management
  3. Management页面,单击Logstash下的Pipelines。
  4. Pipelines页面中,单击Create pipeline

image.png

  1. Create pipeline页面,输入Pipeline IDDescription,并根据需求配置其他参数。本文的Pipeline参数配置如下,其他参数说明请参见通过Kibana配置Pipeline
input {
     elasticsearch {
       hosts => "http://xxxxxxxxx:9200"
       user  => "elastic"
       index => "*"
       password => "xxxxxx"
       docinfo => true
     }
   }
output {
      elasticsearch {
        hosts => "http://xxxxxxx.elasticsearch.aliyuncs.com:9200"
        user => "elastic"
        password => "xxxxxx"
        index => "%{[@metadata][_index]}"
        document_type => "%{[@metadata][_type]}"
        document_id => "%{[@metadata][_id]}"
  }
}

image.png

  1. 其他参数详情请参见input插件说明
  • 以上配置将源ES集群的所有索引同步到目标集群中,您也可以设置只同步指定的索引,input配置如下。
input {
     elasticsearch {
       hosts => "http://xxxxxxxx:9200"
       user  => "elastic"
       index => "alicloudtest"
       password => "xxxxxxx"
       query => '{ "query":{ "query_string": { "query": "*" } } }'
       docinfo => true
     }
  • Elasticsearch input插件是根据配置的query语句,从ES集群读取文档数据。适用于批量导入测试日志、重索引等操作。默认一次query抽取完数据后,worker会自动关闭。如果想要实现定时触发同步动作,可以使用cron语法,配合schedule属性的配置实现,详情请参见Logstash官网Scheduling介绍
schedule => "* * * * *"
  • 以上示例会每分钟触发抽取。如果没有指定schedule参数,那么抽取仅执行一次。

关联Logstash与ES实例

  1. 进入Logstash实例管理页面
  2. 单击左侧导航栏的管道管理
  3. 管道管理页面,单击关联Elasticsearch实例右侧的修改
    image.png

目前Logstash的管道管理方式仅支持集中式管道管理。您需要首先在所要关联的ES实例的Kibana控制台中,创建和配置Logstash管道。

  1. 修改配置页面,选择Elasticsearch实例,并输入ES实例的用户名和密码。用户名为所选的ES集群的用户名(一般为elastic),密码为创建集群时设置的密码。
  2. 单击测试连通性并获取管道列表。连通成功后,系统显示管道ID下拉框。
  3. 选择管道ID管道ID对应您在配置Logstash pipeline时,配置的Pipeline ID。如果您还没有管道ID,可单击前往创建链接,前往所选Elasticsearch实例的Kibana控制台创建并配置管道,详情请参见配置Logstash pipeline
    image.png

管道创建成功后,返回Logstash管道管理的修改配置页面,再次单击测试连通性并获取管道列表,获取新创建的管道ID。

image.png

警告 管道配置变更需要重启Logstash进程,请在不影响业务的情况下,继续执行以下操作。

  1. 勾选重启Logstash进程注意事项,单击确认。确认后,Logstash会进行重启。重启过程中,可在任务列表中查看重启进度。重启成功后,即可完成Logstash实例的管道配置,并启动相应的数据传输进程。

相关活动


【全链路云上Elastic Stack】系列直播_第四场

直播主题:【阿里云Elasticsearch 轻量化数据管道解决方案——Logstash/Beats介绍】
直播时间:2020年1月14日 11:30~12:00
参与方式:扫码加群,观看直播
产品购买:
Elasticsearch增强版
Logstash

折扣.png

扫码关注公众号‘Elasticsearch技术’,收获大咖最佳行业应用经验

d8fb488bdc514f3aabb41555673b109d.jpg

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
28天前
|
存储 自然语言处理 关系型数据库
ElasticSearch索引 和MySQL索引那个更高效实用那个更合适
ElasticSearch索引 和MySQL索引那个更高效实用那个更合适
38 0
|
1月前
|
关系型数据库 MySQL 数据挖掘
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
DTS 作为阿里云核心的数据交互引擎,以其高效的实时数据流处理能力和广泛的数据源兼容性,为用户构建了一个安全可靠、可扩展、高可用的数据架构桥梁。阿里云数据库 SelectDB 通过与 DTS 联合,为用户提供了简单、实时、极速且低成本的事务数据分析方案。用户可以通过 DTS 数据传输服务,一键将自建 MySQL / RDS MySQL / PolarDB for MySQL 数据库,迁移或同步至阿里云数据库 SelectDB 的实例中,帮助企业在短时间内完成数据迁移或同步,并即时获得深度洞察。
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
|
1月前
|
SQL 人工智能 数据挖掘
阿里云DMS,身边的智能化数据分析助手
生成式AI颠覆了人机交互的传统范式,赋予每个人利用AI进行低门槛数据分析的能力。Data Fabric与生成式AI的强强联合,不仅能够实现敏捷数据交付,还有效降低了数据分析门槛,让人人都能数据分析成为可能!阿里云DMS作为阿里云统一的用数平台,在2021年初就开始探索使用Data Fabric理念构建逻辑数仓来加速企业数据价值的交付,2023年推出基于大模型构建的Data Copilot,降低用数门槛,近期我们将Notebook(分析窗口)、逻辑数仓(Data Fabric)、Data Copilot(生成式AI)进行有机组合,端到端的解决用数难题,给用户带来全新的分析体验。
110143 118
阿里云DMS,身边的智能化数据分析助手
|
1月前
|
监控 安全 Linux
【Elasticsearch专栏 14】深入探索:Elasticsearch使用Logstash的日期过滤器删除旧数据
使用Logstash的日期过滤器可以有效删除Elasticsearch中的旧数据,释放存储空间并提高集群性能。通过配置Logstash,可以指定索引模式、筛选时间戳早于特定阈值的文档,并在输出阶段删除这些旧数据。执行配置时,需确保Logstash与Elasticsearch连接正常,并监控日志以确保操作安全。定期执行此操作可确保旧数据不会过多积累。总之,Logstash的日期过滤器提供了一种简单而高效的方法,帮助管理和优化Elasticsearch中的数据。
|
2月前
|
存储 机器学习/深度学习 人工智能
阿里云视觉智能开放平台确实拥有视频目标检测的能力
【2月更文挑战第9天】阿里云视觉智能开放平台确实拥有视频目标检测的能力
97 7
|
2月前
|
存储 数据可视化 数据管理
基于阿里云服务的数据平台架构实践
本文主要介绍基于阿里云大数据组件服务,对企业进行大数据平台建设的架构实践。
719 2
|
1月前
|
JSON 监控 数据管理
【Elasticsearch专栏 12】深入探索:Elasticsearch使用索引生命周期管理(ILM)自动化删除旧数据
Elasticsearch的ILM功能允许用户定义策略,自动管理索引从创建到删除的生命周期。用户可以设置策略,根据索引年龄或大小自动删除旧数据,节省存储空间。通过应用ILM策略于索引模板,新索引将遵循预定义的生命周期。用户还可以监控ILM状态,确保策略按预期执行。使用ILM,用户可以高效地管理数据,确保旧数据及时删除,同时保持数据完整性和安全性。
|
2月前
|
存储 自然语言处理 搜索推荐
【Elasticsearch专栏 01】深入探索:Elasticsearch的正向索引和倒排索引是什么?
正向索引根据文档ID直接查找文档内容,适用于精确匹配场景;而倒排索引则基于文档内容构建,通过关键词快速定位相关文档,适用于全文搜索,显著提高查询效率,是搜索引擎的核心技术。
|
1天前
|
安全 API 数据安全/隐私保护
Elasticsearch 通过索引阻塞实现数据保护深入解析
Elasticsearch 通过索引阻塞实现数据保护深入解析
|
1月前
|
消息中间件 编解码 运维
阿里云 Serverless 异步任务处理系统在数据分析领域的应用
本文主要介绍异步任务处理系统中的数据分析,函数计算异步任务最佳实践-Kafka ETL,函数计算异步任务最佳实践-音视频处理等。
175311 348

相关产品

  • 检索分析服务 Elasticsearch版