- 文档首页
云搜索服务
最佳实践
数据迁移
使用 Logstash 跨集群迁移数据
使用 Logstash 跨集群迁移数据
Logstash 是一款开源的数据收集引擎,具备实时管道处理能力,能够同时从多个来源采集数据、转换数据,然后将数据发送到 Elasticsearch 中。本文介绍如何通过 Logstash 进行跨集群的数据迁移。
- 创建并部署元数据迁移管道。具体操作和参数配置,请参见和元数据迁移管道。
- 创建并部署普通管道。具体操作,请参见创建管道。管道配置示例如下。
说明
- 若源集群中的数据存在 routing 参数,output 插件中也需配置 routing 字段。
- 执行以下命令,查询集群中全部索引的信息,包括索引的健康情况、状态、名称、UUID、分片数、副本数、文档数量等信息。
- 您可以通过对比源集群和目标集群的索引和文档数,来判断迁移进度。当索引数相同、文档数趋近相同时,可视为数据迁移完成。
说明
- 迁移任务不会迁移后续增量数据,存量索引文档数趋近相同。
- 由于 Elasticsearch 2、Elasticsearch 5 中单个索引支持多个 _type,如果迁移时源索引指定了 _type 或者将不同 _type 拆分到了不同的目标索引,则需分 _type 查看索引迁移进度。您可以在源集群通过 /{索引名}/{_type}/_count 查看指定索引指定 _type 的文档数。
说明
如果源索引需要增量更新,需注意以下事项:
- 迁移前记录迁移开始时间,后续用作增量迁移起始时间。
- 创建并部署普通管道。具体操作,请参见创建管道。管道 input 插件配置示例如下。
说明
schedule 字段配置:假设单次增量迁移耗时 y 分钟且波动不大,则可以配置查询时间范围为 [当前时间 - (y + 2) 分钟, 当前时间],持续增量迁移时,连续两次任务启动时间差 z 满足 y + 2 > z > y,则连续的 2 次增量迁移数据有重叠,可以保证增量数据不丢失。如果不需要多次执行,删除 schedule 字段即可。
如需丢弃消息,可参考如下配置。
说明
- 以上配置丢弃当前日期前 7 天的数据,满足丢弃条件会输出一条日志。
- 写入 Elasticsearch 或 OpenSearch 实例的数据中,需要包含 @timestamp 字段。
最近更新时间:2026.04.23 15:38:36