更新时间:2026-09-03 GMT+08:00

使用Logstash迁移数据

Logstash是一款收集、转换、清洗、解析数据的工具,本章节为您提供了一个使用CSS服务的Logstash集群完成Elasticsearch集群间数据迁移的示例,您可以参考此示例来了解Logstash服务,包括创建集群、导入导出数据、任务配置等操作。

操作流程

以下是使用Logstash集群将源Elasticsearch集群的数据迁移到目标Elasticsearch集群的操作步骤。

开始迁移数据前,请务必按准备工作指导完成必要操作。

  1. 步骤一:获取Elasticsearch集群信息:获取源Elasticsearch集群和目标Elasticsearch集群的访问地址。
  2. 步骤二:创建Logstash集群:创建一个Logstash集群用于迁移Elasticsearch集群的数据。
  3. 步骤三:配置迁移任务:在Logstash集群配置Elasticsearch集群的迁移任务。
  4. 步骤四:启动迁移任务:在Logstash集群启动配置好的迁移任务。
  5. 步骤五:停止任务:当数据迁移完成,不再需要迁移任务时,您可以停止任务。

准备工作

  • 已准备好源Elasticsearch集群“Source-ES”和目标Elasticsearch集群“Dest-ES”,且都是单节点的非安全集群。
  • 确认源Elasticsearch集群中待迁移的索引信息,例如本示例需要迁移的是以index开头的索引。

步骤一:获取Elasticsearch集群信息

获取源Elasticsearch集群和目标Elasticsearch集群的访问地址,如果是安全集群还需要联系服务管理员获取集群的用户名和密码。

  1. 登录云搜索服务管理控制台。
  2. 在左侧导航栏选择集群管理 > Elasticsearch
  3. 在集群列表,选择目标集群,在“内网访问地址”列获取并记录集群的内网IP地址,一般是“<host>:<port>”“<host>:<port>,<host>:<port>”样式。

    例如本示例里,源Elasticsearch集群“Source-ES”的访问地址是“10.62.179.32:9200”,目标Elasticsearch集群“Dest-ES”的访问地址是“10.62.179.33:9200”

步骤二:创建Logstash集群

创建一个Logstash集群用于迁移Elasticsearch集群的数据。

  1. 登录云搜索服务管理控制台。
  2. 在左侧导航栏选择集群管理 > Logstash
  3. 单击右上角的创建集群,进入“创建集群”页面。
  4. 配置集群的计费模式和可用区。
    表1 计费模型和可用区参数说明

    参数

    说明

    取值样例

    当前区域

    选择集群的所在区域。

    不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。

    xxx

    可用区

    选择集群工作区域下关联的可用区。最多支持配置2个“可用区”。

    可用区1

  5. 配置集群基本信息。
    图1 配置集群信息
    表2 基本参数说明

    参数

    说明

    取值样例

    集群类型

    选择“Logstash”

    Logstash

    集群版本

    选择所需的集群版本,支持的版本以界面可选项为准。

    7.10.0

    集群名称

    自定义集群名称。

    Sample-Logstash

    集群描述

    为集群添加描述,方便用户识别。

    /

  6. 配置集群的规格信息。
    图2 配置集群规格
    表3 规格参数说明

    参数

    说明

    取值样例

    节点数量

    集群中的节点个数。可选节点数为1~100。

    1

    CPU架构

    仅支持“X86计算”类型。

    X86计算

    节点规格

    选择集群节点的规格。

    ess.spec-4u8g

    节点存储

    选择集群节点的存储类型。

    高I/O

    节点存储容量

    设置集群节点的存储空间大小,默认配置40GB。

    40GB

  7. 设置集群的企业项目。

    如果您开通了“企业项目”,在创建集群时,可以给集群绑定一个企业项目。本示例选择默认企业项目“default”

  8. 单击“下一步:网络配置”,设置集群的网络配置。
    图3 配置网络
    表4 网络配置参数说明

    参数

    说明

    取值样例

    虚拟私有云

    指定集群节点使用的虚拟专用网络,实现不同业务的网络隔离。

    和Elasticsearch集群选择同一个VPC。

    说明:

    此处您选择的VPC必须包含网段(CIDR),否则集群将无法创建成功。新建的VPC默认包含网段(CIDR)。

    vpc-default

    子网

    集群使用子网实现与其他网络的隔离,并独享所有网络资源,以提高网络安全。

    subnet-default

    安全组

    安全组起着虚拟防火墙的作用,为集群提供安全的网络访问控制策略。

    说明:

    为了确保您能够正常访问集群,需要放通安全组9200规则。

    default

  9. 单击“下一步:高级配置”,可以设置Logstash集群的高级功能。

    本集群仅做入门指导使用,无需开启集群高级功能。

  10. 单击“下一步:确认配置”,确认完成后单击“立即创建”开始创建集群。
  11. 单击“返回集群列表”,系统将跳转到“集群管理”页面。您创建的集群将展现在集群列表中,且集群状态为“创建中”,创建成功后集群状态会变为“可用”。
    图4 创建集群

步骤三:配置迁移任务

在Logstash集群配置Elasticsearch集群的迁移任务。

  1. 在Logstash集群列表,单击集群名称“Sample-Logstash”,进入集群详情页。
  2. 选择“配置中心”页签。
  3. 在配置中心界面,单击右上角“创建”,进入创建配置文件页面,编辑配置文件。
    图5 配置任务
    表5 创建配置文件参数说明

    参数

    示例

    说明

    名称

    es-es

    自定义配置文件名称。

    只能包含字母、数字、中划线或下划线,且必须以字母开头。必须大于等于4个字符。

    配置文件内容

    关键配置项请参见表6,其他配置项保持默认值。

    展开上方“系统模板”,选择“elasticsearch”,单击操作列的“应用”,在配置文件内容中,基于模板注释填写配置项。

    隐藏内容列表

    不涉及

    配置隐藏字符串列表。

    输入需要隐藏的敏感字符串列表,按“Enter”创建。

    列表最大支持20条,单个字符串最大长度是512字节。

    描述

    /

    为配置文件添加描述,方便识别。

    表6 配置项说明

    配置

    示例

    说明

    hosts

    • input hosts:
      hosts => ["10.62.179.32:9200"]
    • output hosts:
      hosts => ["10.62.179.33:9200"]

    分别在input和output中填写源Elasticsearch集群和目标Elasticsearch集群的访问地址。获取方式请参见步骤一:获取Elasticsearch集群信息

    index

    • input index:
      index => "index*"
    • output index:
      index => "my_index"

    分别在input和output中填写待迁移的源索引名称和事件写入的索引名称。

    user

    使用“#”注释掉

    访问Elasticsearch集群的用户名。仅安全集群涉及,如果是非安全集群则此项使用“#”注释掉。

    password

    使用“#”注释掉

    访问Elasticsearch集群的密码。仅安全集群涉及,如果是非安全集群则此项使用“#”注释掉。

  4. 编辑完成后,单击“下一页”配置Logstash管道参数。
    图6 配置管道参数
    表7 管道参数说明

    参数

    示例

    说明

    pipeline.workers

    4

    并行执行管道的Filters和Outputs阶段的工作线程数。

    pipeline.batch.size

    125

    单个工作线程在尝试执行其Filters和Outputs之前将从inputs收集的最大事件数,该值较大通常更有效,但会增加内存开销。

    pipeline.batch.delay

    50

    管道事件批处理参数,以指定在将规模较小的事件批次调度至管道工作线程之前,对每个事件的等待时长。

    query.type

    memory

    用于事件缓冲的内部队列模型。

    • “memory”为基于内存的传统队列。
    • “persisted”为基于磁盘的ACKed持久化队列。
  5. 配置完成后,单击“创建”,系统会自动进行配置文件校验,等待配置文件状态为“可用”,表示创建成功。
    图7 配置文件校验

步骤四:启动迁移任务

在Logstash集群启动配置好的迁移任务。

  1. 在配置中心页面,选择新建的状态为“可用”的配置文件,单击“启动”,启动配置任务。

    当管道列表中新增管道的“运行状态”变为“工作中”,即表示数据迁移任务已启动并正常运行。此时,“事件”列将动态更新,显示当前已处理的文档数量。

    图8 启动配置任务
  2. 数据迁移完毕,检查目标Elasticsearch集群和源集群数据的一致性。例如,分别在源集群和目标集群执行GET _cat/indices命令,对比两者的索引信息是否一致。
    1. 在Elasticsearch集群列表,选择源Elasticsearch集群“Source-ES”或目标Elasticsearch集群“Dest-ES”,单击操作列中的“Kibana”进入Kibana控制台。
    2. 在Kibana的左侧导航中选择“Dev Tools”,进入Console界面。

      控制台左侧是命令输入框,其右侧的三角形图标为执行按钮,右侧区域则显示执行结果。

    3. 在Console界面,执行如下命令查看索引信息。
      GET _cat/indices

步骤五:停止任务

当数据迁移完成,不再需要迁移任务时,您可以停止任务。

  1. 登录云搜索服务管理控制台。
  2. 在左侧导航栏选择集群管理 > Logstash
  3. 在集群列表,选择“Sample-Logstash”集群,单击操作列的“配置中心”,进入Logstash集群配置页面。
  4. 在配置中心页面,选择已经启动的管道名称,单击“全部停止”,停止正在运行的任务,等待所有管道任务停止完成。
    图9 停止任务

后续步骤

已完成数据迁移业务,无需继续使用集群时,可删除集群释放资源,删除前请确保所有正在运行的管道任务全部停止。

集群删除前请停止所有正在运行的任务,避免数据异常, 删除前建议备份配置文件。

  1. 登录云搜索服务管理控制台。
  2. 在左侧导航栏选择集群管理 > Logstash
  3. 在集群列表,选择“Sample-Logstash”集群,在操作列单击“更多”>“删除”
  4. 在弹出的确认对话框中,输入“DELETE”,单击“确定”完成操作。
  5. (可选)当源Elasticsearch集群和目标Elasticsearch集群都不再需要时,可按照相同操作流程执行删除操作。