elastic 迁移
es迁移测试工具对比
测试工具 | 是否成功 | 环境搭建 | 迁移版本是否支持 | 工具地址 |
---|---|---|---|---|
Elasticsearch Migration | 是 | 简单,二进制下载即可用 | 见工具地址Versions支持 | https://github.com/medcl/esm-abandoned |
logstash迁移 | 是 | 更新和es对应版本 | 支持跨版本,logstash5.0 | |
Elasticsearch-Exporter | 否 | node环境依赖,复杂 | https://github.com/mallocator/Elasticsearch-Exporter |
小结:对比选择使用esm,logstash辅助。
esm迁移脚本
#!/bin/sh
dir="/data/apps/opt"
cd $dir
esindex=`curl -s 'http://127.0.0.1:9200/_cat/indices' | grep -e logstash-09* | awk '{print $3}'`
#echo $esindex
for i in $esindex;
do
./esm -s http://127.0.0.1:9200 -x $i -d http://192.168.1.100:9200 -x $i -w=5 -b=10 -c 10000
done
migrator-linux-amd64使用参数说明
-s 源es集群地址
-d 目的es集群地址
-x --src_index 源索引名称
-y --dest_index 目的索引名称
-n username:passwd 目的es权限
-w bulk workers (default: 1) 默认为1
-b --bulk_size= bulk size in MB (default: 5) 默认为5MB
screen -R esm
./migrator-linux-amd64 -s http://es_src:port -d http://es_dest:port -x index_name -y sns_op_feeds -n username:passwd -w=5 -b=10 -c 5000
logstash迁移es数据
migrate-index.conf
input {
elasticsearch {
hosts => "http://es_src:port"
index => "index_name"
size => 10000
}
}
output {
stdout{codec => rubydebug}
elasticsearch {
hosts => "http://es_dest:port"
index => "index_name"
user => "username"
password => "password"
}
}
es保留30的数据
#!/bin/bash
DATE=`date +%Y.%m.%d.%I`
DATA1=`date +%Y.%m.%d -d'-30 day'`
DATA2=`date +%Y.%m.%d -d'-30 day'`
today=`date +%Y%m%d`
dd90=$(date -d'-90 day' "+%Y.%m.%d")
#关闭索引
curl -XPOST "http://localhost:9200/logstash*${DATA1}*/_close?pretty"
#删除索引
curl -XDELETE "http://localhost:9200/logstash*${DATA2}*?pretty
#保持3月的数据
curl -s -XDELETE "http://localhost:9200/logstash-log*$dd90" >> /opt/scripts/clear_es_index/delete_index-${today}.log
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!