如何安全地将Elasticsearch索引移动到Linux中的另一个挂载?

时间:2017-01-27 06:43:22

标签: elasticsearch logstash kibana elastic-stack elasticsearch-5

我的 Ubuntu 计算机中有很多索引实际上导致了一些空间问题。指数每天都在增长。

所以我想把它移到另一个显然有更多空间的mount目录下。我怎么能安全地做到这一点?

我必须确保现有的ES 索引Kibana图表在移动后足够安全。

我做了什么:关注此SO并将Elasticsearch数据目录以某种方式移至目录(/ data / es_data)我需要,但在我这样做之后,我无法查看现有的索引以及Kibana 图表信息中心也是我创建的。

我做错了吗?任何帮助都可以得到赞赏。

1 个答案:

答案 0 :(得分:2)

FWIW如果是我,我会停止弹性搜索& kibana(& logstash,如果这是群集中唯一的弹性搜索节点),然后将旧数据目录移动到新位置:

sudo mv /var/lib/elasticsearch /var/lib/elasticsearch-old

然后设置新卷(应该至少比磁盘上的索引大15%,因为elasticsearch不会在磁盘上创建新索引超过15%的可用空间)使用文件系统并找到它的UUID并准备安装它:

sudo fdisk /dev/sdX # New volume, use all the space
sudo mkfs.ext4 /dev/sdX1
ls -la /dev/disk/by-uuid/ | grep /dev/sdX1 # Or forget the grep and manually look for it

然后将以下内容添加到/ etc / fstab中,替换为上一个命令中的UUID:

UUID=<RESPONSE> /var/lib/elasticsearch  ext4 defaults 0 0

制作新目录,因为旧目录已经消失,它可能需要chowning(我假设所有者应该是elasticsearch但你可以通过检查旧文件夹的所有权来确认)并且你想要复制旧目录中的内容:

sudo mkdir /var/lib/elasticsearch
sudo chown -R elasticsearch: /var/lib/elasticsearch
cp -rp /var/lib/elasticsearch-old/* /var/lib/elasticsearch

一旦所有内容完成复制,你应该能够启动elasticsearch备份,它应该找到索引,因为它们没有移动,配置不需要更新。

如果您对一切正常工作感到高兴,可以删除/ var / lib / elasticsearch-old并回收您的空间。如果没有,您可以恢复旧数据,它应该继续工作。