使用Logstash迁移数据
Logstash是一款收集、转换、清洗、解析数据的工具,本章节为您提供了一个使用CSS服务的Logstash集群完成Elasticsearch集群间数据迁移的示例,您可以参考此示例来了解Logstash服务,包括创建集群、导入导出数据、任务配置等操作。
操作流程
以下是使用Logstash集群将源Elasticsearch集群迁移到目标Elasticsearch集群的操作步骤。
开始迁移数据前,请务必按准备工作指导完成必要操作。
- 步骤1:获取Elasticsearch集群信息:获取源Elasticsearch集群和目标Elasticsearch集群的访问地址。
- 步骤2:创建Logstash集群:创建一个Logstash集群用于迁移Elasticsearch集群的数据。
- 步骤3:配置迁移任务:在Logstash集群配置Elasticsearch集群的迁移任务。
- 步骤4:启动迁移任务:在Logstash集群启动配置好的迁移任务。
- 步骤5:停止任务:当数据迁移完成,不再需要迁移任务时,您可以停止任务。
- 步骤6:删除集群:无需继续使用集群时,可删除集群释放资源。
准备工作
- 已注册华为账号并开通华为云,进行了实名认证,且在使用云搜索服务前检查账号状态,账号不能处于欠费或冻结状态。
- 已准备好源Elasticsearch集群“Source-ES”和目标Elasticsearch集群“Dest-ES”,且都是单节点的非安全集群。
步骤1:获取Elasticsearch集群信息
获取源Elasticsearch集群和目标Elasticsearch集群的访问地址,如果是安全集群还需要联系服务管理员获取集群的用户名和密码。
- 登录云搜索服务管理控制台。
- 在左侧导航栏选择 。
- 在集群列表,选择目标集群,在“内网访问地址”列获取并记录集群的内网IP地址,一般是“<host>:<port>”或“<host>:<port>,<host>:<port>”样式。
例如本示例里,源Elasticsearch集群“Source-ES”的访问地址是“10.62.179.32:9200”,目标Elasticsearch集群“Dest-ES”的访问地址是“10.62.179.33:9200”。
图1 获取IP地址
步骤2:创建Logstash集群
创建一个Logstash集群用于迁移Elasticsearch集群的数据。
- 登录云搜索服务管理控制台。
- 在左侧导航栏选择 。
- 在集群列表右上角,单击“创建集群”,默认进入新版创建页面。
图2 新版创建页面
- 集群配置,选择集群类型和版本。
表1 集群配置 参数
示例
说明
集群类型
Logstash
选择“Logstash”。
集群版本
7.10.0
选择所需的集群版本,支持的版本以界面可选项为准。
- 基础配置,选择当前区域、可用区和计费模式。
表2 基础配置 参数
示例
说明
当前区域
中国-香港
选择集群的所在区域。区域指集群的物理数据中心所在的位置,不同区域的云服务产品之间内网互不相通。建议就近选择靠近您业务的区域,可减少网络时延,提高访问速度。
可用区
可用区1
选择集群工作区域下关联的可用区。可用区指在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。
最多支持配置2个可用区。
计费模式
按需计费
选择集群的计费模式,集群支持包年/包月和按需计费两种模式。
- 包年/包月:预付费模式,按照订单的购买周期结算。
- 按需计费:后付费模式,按照集群实际使用时长计费,计费周期为一小时,不足一小时按一小时计费。
- 配置数据节点。
Logstash集群的数据节点用于处理和传输数据。图3 配置数据节点
表3 数据节点配置 参数
示例
说明
CPU架构
X86计算
选择数据节点的CPU架构。
节点规格
ess.spec-4u8g
选择数据节点的规格。单击“选择节点规格”,在弹框中选择合适的规格。
规格列表的“vCPUs | 内存”呈现了规格的CPU核数和内存,“建议存储范围”呈现了该规格支持的存储容量。
不同区域支持的节点规格不同,请以实际环境为准。
节点存储类型和容量
- 高I/O
- 40GB
选择数据节点的存储类型和容量。
- 选择云硬盘类型,不同区域支持的云硬盘类型不同,请以实际环境为准。
- 节点存储容量为固定值:40GB
节点数量
1
设置集群中的数据节点个数。
- 网络配置,设置集群的VPC、IP地址和安全组。
图4 网络配置
表4 网络配置 参数
示例
说明
虚拟私有云
vpc-default
指定集群使用的虚拟专用网络,可以对不同业务进行网络隔离
子网
subnet-default
指定集群使用的子网,通过子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全。
选择当前虚拟私有云下的子网。
IPv4地址
自动分配IPv4地址
分配集群节点的IPv4地址。
安全组
default
指定集群使用的安全组,安全组起着虚拟防火墙的作用,为集群提供安全的网络访问控制策略。
所选安全组的入方向规则中,“协议端口”必须为“全部”或包含9200的端口范围,否则外部业务访问可能会异常。
- 集群管理配置,设置集群名称、企业项目等信息。
表5 集群管理 参数
示例
说明
集群名称
Sample-Logstash
自定义集群名称。
添加描述
不添加
为集群添加描述,方便用户识别。
企业项目
default
给集群绑定一个企业项目。
企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理,默认项目为“default”。
如果开通了“企业项目”,请从下拉列表中选择所在的企业项目。
标签
不添加
为集群添加标签,方便用户识别和管理拥有的集群资源。
每个集群最多可以设置20个标签。
- 单击“立即创建”,开始创建集群。
- 返回集群列表,查看新建的集群。当集群创建成功后,“集群状态”会变为“可用”。
图5 查看集群状态
步骤3:配置迁移任务
在Logstash集群配置Elasticsearch集群的迁移任务。
- 在Logstash集群列表,单击集群名称“Sample-Logstash”,进入集群详情页。
- 选择“配置中心”页签。
- 在配置中心界面,单击右上角“创建”,进入创建配置文件页面,编辑配置文件。
图6 配置任务
表6 创建配置文件参数说明 参数
说明
取值样例
名称
自定义配置文件名称。
只能包含字母、数字、中划线或下划线,且必须以字母开头。必须大于等于4个字符。
es-es
配置文件内容
展开上方“系统模板”,选择“elasticsearch”,单击操作列的“应用”,在配置文件内容中,基于模板注释填写配置项。
关键配置项请参见表7,其他配置项保持默认值。
隐藏内容列表
配置隐藏字符串列表后,在返回的配置内容中,会将所有在列表中的字串隐藏为“***”。
输入需要隐藏的敏感字串列表,按“Enter”创建。
列表最大支持20条,单个字串最大长度512字节。
不涉及
表7 配置项说明 配置
说明
取值样例
hosts
分别在input和output中填写源Elasticsearch集群和目标Elasticsearch集群的访问地址。获取方式请参见步骤1:获取Elasticsearch集群信息。
input hosts:http://10.62.179.32:9200
output hosts:http://10.62.179.33:9200
user
访问Elasticsearch集群的用户名。仅安全集群涉及,如果是非安全集群则此项使用“#”注释掉。
使用“#”注释掉
password
访问Elasticsearch集群的密码。仅安全集群涉及,如果是非安全集群则此项使用“#”注释掉。
使用“#”注释掉
index
需要迁移的索引信息,可以使用通配符设置。
index*
- 编辑完成后,单击“下一页”配置Logstash管道参数。
图7 配置管道参数
表8 管道参数说明 参数
说明
取值样例
pipeline.workers
并行执行管道的Filters和Outputs阶段的工作线程数。
4
pipeline.batch.size
单个工作线程在尝试执行其Filters和Outputs之前将从inputs收集的最大事件数,该值较大通常更有效,但会增加内存开销。
125
pipeline.batch.delay
管道事件批处理参数,以指定在将规模较小的事件批次调度至管道工作线程之前,对每个事件的等待时长。
50
query.type
用于事件缓冲的内部队列模型。
- “memory”为基于内存的传统队列。
- “persisted”为基于磁盘的ACKed持久化队列。
memory
- 配置完成后,单击“创建”,系统会自动进行配置文件校验,等待配置文件状态为“可用”,表示创建成功。
图8 配置文件校验
步骤4:启动迁移任务
在Logstash集群启动配置好的迁移任务。
- 在配置中心页面,选择新建的状态为“可用”的配置文件,单击“启动”,启动配置任务。管道列表中“事件”列显示配置任务处理的任务数量。
图9 启动配置任务
- 数据迁移完毕,检查目标Elasticsearch集群和源集群数据的一致性。例如,分别在源集群和目标集群执行GET _cat/indices命令,对比两者的索引信息是否一致。
- 在Elasticsearch集群列表,选择源Elasticsearch集群“Source-ES”或目标Elasticsearch集群“Dest-ES”,单击操作列中的“Kibana”进入Kibana控制台。
- 在Kibana的左侧导航中选择“Dev Tools”,进入Console界面。
- 在Console界面,执行如下命令查看索引信息。
GET _cat/indices
步骤5:停止任务
当数据迁移完成,不再需要迁移任务时,您可以停止任务。
- 登录云搜索服务管理控制台。
- 在左侧导航栏选择 。
- 在集群列表,单击目标集群名称,进入集群详情页。
- 选择“配置中心”页签。
- 在集群列表,选择“Sample-Logstash”集群,单击操作列的“配置中心”,进入Logstash集群配置页面。
- 在配置中心页面,选择已经启动的管道名称,单击“全部停止”,停止正在运行的任务,等待所有管道任务停止完成。
图10 停止任务
步骤6:删除集群
已完成数据迁移业务,无需继续使用集群时,可删除集群释放资源,删除前请确保所有正在运行的管道任务全部停止。

集群删除前请停止所有正在运行的任务,避免数据异常, 删除前建议备份配置文件。
- 登录云搜索服务管理控制台。
- 在左侧导航栏选择 。
- 在集群列表,选择“Sample-Logstash”集群,在操作列单击“更多”>“删除”。
- 在弹出的确认对话框中,输入“DELETE”,单击“确定”完成操作。