使用Logstash迁移数据
Logstash是一款收集、转换、清洗、解析数据的工具,本章节为您提供了一个使用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集群的访问地址,如果是安全集群还需要联系服务管理员获取集群的用户名和密码。
- 登录云搜索服务管理控制台。
- 在左侧菜单栏选择 。
- 在集群管理列表页面,选择需要访问的集群,在“内网访问地址”列获取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集群的数据。
- 登录云搜索服务管理控制台。
- 在左侧菜单栏选择 。
- 单击右上角的“创建集群”,进入“创建集群”页面。
- 配置集群的计费模式和可用区。
表1 计费模型和可用区参数说明 参数
说明
取值样例
计费模式
集群支持“包年/包月”和“按需计费”两种模式。
- 包年/包月:根据集群购买时长,一次性支付集群费用。最短时长为1个月,最长时长为3年。如果购买时长超过9个月,建议包年购买,价格更优惠。
- 按需计费:按实际使用时长计费,计费周期为一小时,不足一小时按一小时计费。
按需计费
当前区域
选择集群的所在区域。
不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。
华北-北京四
可用区
选择集群工作区域下关联的可用区。最多支持配置3个“可用区”。
可用区1
- 配置集群基本信息。
图2 配置集群信息
表2 基本参数说明 参数
说明
取值样例
集群类型
选择“Logstash”。
Logstash
集群版本
选择所需的集群版本,支持的版本以界面可选项为准。
7.10.0
集群名称
自定义集群名称,可输入的字符范围为4~32个字符,只能包含数字、字母、中划线和下划线,且必须以字母开头。
Sample-Logstash
- 配置集群的规格信息。
图3 配置集群规格
表3 规格参数说明 参数
说明
取值样例
节点数量
集群中的节点个数。可选节点数为1~100。
1
CPU架构
仅支持“X86计算”类型。
X86计算
节点规格
选择集群节点的规格。
ess.spec-4u8g
节点存储
选择集群节点的存储类型。
高I/O
节点存储容量
设置集群节点的存储空间大小,默认配置40GB。
40GB
- 设置集群的企业项目。
- 单击“下一步:网络配置”,设置集群的网络配置。
图4 配置网络
表4 网络配置参数说明 参数
说明
取值样例
虚拟私有云
指定集群节点使用的虚拟专用网络,实现不同业务的网络隔离。
和Elasticsearch集群选择同一个VPC。
说明:此处您选择的VPC必须包含网段(CIDR),否则集群将无法创建成功。新建的VPC默认包含网段(CIDR)。
vpc-default
子网
集群使用子网实现与其他网络的隔离,并独享所有网络资源,以提高网络安全。
subnet-default
安全组
安全组起着虚拟防火墙的作用,为集群提供安全的网络访问控制策略。
说明:为了确保您能够正常访问集群,需要放通安全组9200规则。
default
- 单击“下一步:高级配置”,可以设置Logstash集群的高级功能。
- 单击“下一步:确认配置”,确认完成后单击“立即创建”开始创建集群。
- 单击“返回集群列表”,系统将跳转到“集群管理”页面。您创建的集群将展现在集群列表中,且集群状态为“创建中”,创建成功后集群状态会变为“可用”。
图5 创建集群
步骤3:配置迁移任务
在Logstash集群配置Elasticsearch集群的迁移任务。
- 在Logstash集群管理页面,选择已创建的“Sample-Logstash”集群,进入集群基本信息页面。
- 单击右侧“配置中心”,进入Logstash配置中心界面。
图6 Logstash配置中心界面
- 在配置中心界面,单击右上角“创建”,进入创建配置文件页面,编辑配置文件。
图7 配置任务
表5 创建配置文件参数说明 参数
说明
取值样例
名称
自定义配置文件名称。
只能包含字母、数字、中划线或下划线,且必须以字母开头。必须大于等于4个字符。
es-es
配置文件内容
展开上方“系统模板”,选择“elasticsearch”,单击操作列的“应用”,在配置文件内容中,基于模板注释填写配置项。
关键配置项请参见表6,其他配置项保持默认值。
隐藏内容列表
配置隐藏字符串列表后,在返回的配置内容中,会将所有在列表中的字串隐藏为“***”。
输入需要隐藏的敏感字串列表,按“Enter”创建。
列表最大支持20条,单个字串最大长度512字节。
不涉及
表6 配置项说明 配置
说明
取值样例
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管道参数。
图8 配置管道参数
表7 管道参数说明 参数
说明
取值样例
pipeline.workers
并行执行管道的Filters和Outputs阶段的工作线程数。
4
pipeline.batch.size
单个工作线程在尝试执行其Filters和Outputs之前将从inputs收集的最大事件数,该值较大通常更有效,但会增加内存开销。
125
pipeline.batch.delay
管道事件批处理参数,以指定在将规模较小的事件批次调度至管道工作线程之前,对每个事件的等待时长。
50
query.type
用于事件缓冲的内部队列模型。
- “memory”为基于内存的传统队列。
- “persisted”为基于磁盘的ACKed持久化队列。
memory
- 配置完成后,单击“创建”,系统会自动进行配置文件校验,等待配置文件状态为“可用”,表示创建成功。
图9 配置文件校验
步骤4:启动迁移任务
在Logstash集群启动配置好的迁移任务。
- 在Logstash集群管理页面,选择已创建的“Sample-Logstash”集群,进入集群基本信息页面。
- 单击右侧“配置中心”,进入Logstash配置中心界面。
- 选择状态为“可用”的配置文件,单击“启动”,启动配置任务。管道列表中“事件”列显示配置任务处理的任务数量。
图10 启动配置任务
- 数据迁移完毕,检查目标Elasticsearch集群和源集群数据的一致性。例如,分别在源集群和目标集群执行GET _cat/indices命令,对比两者的索引信息是否一致。
- 在Elasticsearch集群管理页面,选择源Elasticsearch集群“Source-ES”或目标Elasticsearch集群“Dest-ES”,单击操作列中的“Kibana”进入Kibana控制台。
- 在Kibana的左侧导航中选择“Dev Tools”,进入Console界面。
- 在Console界面,执行如下命令查看索引信息。
GET _cat/indices