更新时间:2023-06-20 GMT+08:00
使用Logstash迁移集群数据
Logstash是ES官方提供的数据迁移工具。
- 申请ECS虚拟机,虚拟机规格建议大于8u16g。
- 在ECS中安装Logstash。
- 由于Logstash依赖Java,需要先安装JDK。执行如下命令,使用yum安装JDK。
yum install java yum install python
- 下载Logstash。Logstash版本和ES版本不需要强制一致,一般选择和ES版本接近的Logstash版本。
推荐使用Logstash 7.10.2 OSS版本,下载地址:https://www.elastic.co/downloads/past-releases/logstash-oss-7-10-2
- 执行如下命令,使用yum安装Logstash。
yum install logstash-oss-7.10.0-x86_64.rpm
其中“logstash-oss-7.10.0-x86_64.rpm”替换成实际Logstash的安装包名称。
- 由于Logstash依赖Java,需要先安装JDK。执行如下命令,使用yum安装JDK。
- 修改Logstash的jvm配置,提升集群数据的迁移效率。
执行如下命令,修改jvm配置。Logstash默认的堆内存是1G,建议修改为集群节点内存的一半。
vim /etc/logstash/jvm.options -Xms4g -Xmx4g
- 修改Logstash的conf配置文件,设置集群迁移配置。
- 进入Logstash配置文件的目录下“/etc/logstash/conf.d/”。
cd /etc/logstash/conf.d/
- 创建“logstash-es-es-all.conf”文件。
vim logstash-es-es-all.conf
- 在文件“logstash-es-es-all.conf”里添加如下配置内容并保存。
根据实际情况修改“hosts”、“user”、“password”、“index” 等字段。
input{ elasticsearch{ # 源端集群地址。 hosts => ["http://172.16.xxx.xxx:9200", "http://172.16.xxx.xxx:9200"] # 安全集群需要配置登录集群的用户名和密码,非安全集群可以使用“#”注释掉user和password。 # user => "xxxx" # password => "xxxx" # 需要迁移的索引列表,以逗号“,”分隔,基于机器实际信息填写,“-.*”表示排除“.”开始的索引。 index => "abmau_edi*,business_test,goods_deploy*, -.*" # 以下三项保持默认即可,包含线程数和迁移数据大小和logstash jvm配置相关。 docinfo=>true # 默认不变,如果需要增加迁移速度可以适当调高以下两个参数,但是需要保证机器配置。 slices => 3 size => 3000 } } filter { # 去掉一些logstash自己加的字段。 mutate { remove_field => ["@timestamp", "@version"] } } output{ elasticsearch{ # 目的端集群地址。 hosts => ["http://10.100.xx.xx:9200", "http://10.100.xx.xx:9200"] # 登录目标集群的用户名和密码,没有user和password可以使用“#”注释掉。 user => "admin" password => "*****" # 目的端索引名称,以下配置为和源端保持一致。 index => "%{[@metadata][_index]}" # 目的端索引type,以下配置为和源端保持一致。 document_type => "%{[@metadata][_type]}" # 目标端数据的_id,如果不需要保留原_id,可以删除,删除后集群的性能会更好。 document_id => "%{[@metadata][_id]}" ilm_enabled => false manage_template => false } # 调试信息,正式迁移时建议去掉调试信息。 # stdout { codec => rubydebug { metadata => true }} }
- 进入Logstash配置文件的目录下“/etc/logstash/conf.d/”。
- 启动Logstash迁移集群数据。
- 执行如下命令启动Logstash,开始迁移数据。
/usr/share/logstash/bin/logstash --path.settings /etc/logstash
- 查看Logstash日志文件,确认任务进展。Logstash日志目录是“/var/log/logstash/”。
- 任务启动完毕后,等待数据迁移完成。
- 执行如下命令启动Logstash,开始迁移数据。
父主题: 源端为Elasticsearch