logstash迁移es自建数据到pass服务

本文详细介绍了如何使用Logstash进行Elasticsearch数据迁移,包括下载和解压Logstash,修改配置(如内存设置和批量写入),创建迁移文件,以及执行迁移命令并监控日志。
摘要由CSDN通过智能技术生成

1 安装

下载对应版本的tar文件
https://www.elastic.co/cn/downloads/past-releases#logstash

解压
tar -zvxf logstash-6.8.23-linux-x86_64.tar.gz

2 配置

修改Logstash的堆内存使用
    	 vi config/jvm.options,修改Logstash配置文件config/jvm.options,增加-Xms2g和-Xmx2g。
    
修改Logstash批量写入记录条数,可以加快集群数据的迁移效率
    	vi config/pipelines.yml 
    		pipeline.batch.size从125改为5000

3 创建迁移文件

	配置logstash
		进入到安装目录下
		cd /export/server/logstash/confing/
		创建vi es2es_all.conf文件
		input {
		  elasticsearch {
		    hosts => "http://ip:9200"  ##源es集群
		    user => "用户名"           ##认证信息
		    password => "密码"
		    index => "索引名称"  ##⽀持通配符,* 表⽰所有索引,如果索引多数据量⼤可以分开配置
		    query => '{ "sort": [ "_doc" ] }'
		    slices => 4   ##是否使⽤slice scroll加速迁移,值不超过单索引shard数
		    scroll => "5m"   ##scroll session保持时间
		    size => 1000
		    docinfo => true
		    ssl => false   ##是否使⽤ssl
		  }
		}
		filter {
  # 去掉一些Logstash自己加的字段。
		  mutate {
		    remove_field => ["@timestamp", "@version"]
		  }
		}
		output {
		  elasticsearch {
		    hosts => "http://ip:9200" ##目的 es集群
		    user => "用户名"
		    password => "密码"
		    index => "索引名称" #与源es索引保持一致即可
		    #index => "%{[@metadata][_index]}"  #根据原来的信息填写对端的信息
		    document_type => "%{[@metadata][_type]}" #目标端索引type,以下配置表示索引类型与源端保持一致
		    document_id => "%{[@metadata][_id]}" #目标端数据的id,如果不需要保留原id,可以删除以下这行,删除后性能会更好
		    ssl => false #关闭ssl
		    ssl_certificate_verification => false
		    ilm_enabled => false
 	        manage_template => false
		  }
		}

4 执行命令,并观察日志

启动Logstash全量迁移任务
nohup bin/logstash -f config/es2es_all.conf >es_all.log 2>&1 &
	
查看es_all.log日志是否有迁移报错,如果没有则执行以下命令,检查源索引和迁移后的目标索引大小是否一致
tail -f 100 es_all.log
检查数据是否迁移成功
curl -X GET http://ip:9200/_cat/indices?v​

5 特殊情况

5.1 如果es开启了https和证书认证

 hosts => "https://ip:9200"   改为https的方式

 cacert => "/app/logstash-6.8.23/config/CloudSearchService.cer"    配置证书存放路径
                                                                                         
 ssl => true   ssl改为true

5.2 部分数据迁移

query => '{"query":{"bool":{"must":[{"range":{"start_time.keyword":{"from":"2023-10-02 00:00:00","to":"2023-11-01 23:59:59","include_lower":true,"include_up 
per":true,"format":"yyyy-MM-dd HH:mm:ss","boost":1.0}}}],"boost":1.0}},"sort":["_doc"]}' 

query内写查询匹配条件

参考博文:elasticsearch数据迁移之logstash-CSDN博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值