更新时间: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集群都不再需要时,可按照相同操作流程执行删除操作。