悟空,拿我的打狗棒来
快照

快照

ES数据备份和清理-快照

Elasticsearchziyou 发表了文章 • 3 个评论 • 13418 次浏览 • 2018-04-04 17:41 • 来自相关话题

        这两天在看ES数据备份方面的事情,因为我们ES集群的存储空间有限,需要定时对ES的数据进行备份和清理,把备份的数据存储到其他地方去,然后在ES集群中释放掉。         看大家好多是主要考虑数据的安全性才做的数据的备份,我们就比较low了,我们就是因硬盘不够,要删数据。上个项目是因为日志数据重要程度一般般,就保留了一个月的量,然后也没有做数据的备份转储。这次上线的项目要求就高点了,需要删除的数据存储到其他地方,但是硬盘的容量更低了。所以就需要做ES数据备份和转储,转储完了就清掉。         这里是用ES官方推荐的数据快照方案,这个方案可以完全通过ES API进行操作,比价方便、快捷,在数据恢复方面也是方便的。 先上ES官方的链接,大家看看:https://www.elastic.co/guide/e ... .html         然后就是步骤了: 执行过程分为两部分: 一、准备过程 1、添加ES备份存储目录 在集群的每台机器上进行目录创建 mkdir /home/esdata 2、挂载共享文件存储目录 在集群的每台机器上目录挂载 mount -t nfs 10.70.61.80:/home/apmtest /home/esdata 3、修改ES集群配置 在ES集群的每台机器上都添加path.repo属性 path.repo: ["/home/esdata"] 4、重启ES集群 ES集群重启必须是关闭所有机器后,再启动。 5、建立备份仓库 PUT /_snapshot/my_backup    {      "type": "fs",        "settings": {          "location": "/home/esdata"        }  } 二、备份数据快照 1、通过API执行备份 PUT /_snapshot/my_backup/snapshot_2018.03.01?wait_for_completion=true  {      "indices": "filebeat-2018.03.01"  }           快照仓库需要注意的地方就是需要在整个集群的每一台机器上挂载相同的共享文件存储目录,保证在集群里做的操作是输出到相同的地方的。   下面来一份shell脚本,可以定时执行,是做ES数据的定时转储和清理的,大家可以借鉴一下
#!/bin/bash
ESIP=127.0.0.1
DATE=`date -d '-2 days' +'%Y.%m.%d'`
INDEX='{ "indices": "'$DATE'" }'
echo "begin to backup ES LOG..."
 
curl -XPUT "http://$ESIP:9200/_snapshot/my_backup/snapshot_$DATE?wait_for_completion=true" -d $INDEX
 
echo "----------------------------------------------------------------------------"
 
echo "begin to clean ES LOG..."
 
URL1="http://$ESIP:9200/filebeat-$DATE"
 
curl -XDELETE $URL1

 
echo "TRANSFER AND CLEAN ES LOG END!"

es升级到5.5版本后,拍摄快照时间超长问题

回复

Elasticsearch匿名用户 发起了问题 • 2 人关注 • 0 个回复 • 1881 次浏览 • 2017-10-13 15:55 • 来自相关话题

Elasticsearch数据迁移问题, 从2.x到5.x?

ElasticsearchBrickXu 回复了问题 • 3 人关注 • 2 个回复 • 3655 次浏览 • 2017-07-21 11:21 • 来自相关话题

es升级到5.5版本后,拍摄快照时间超长问题

回复

Elasticsearch匿名用户 发起了问题 • 2 人关注 • 0 个回复 • 1881 次浏览 • 2017-10-13 15:55 • 来自相关话题

Elasticsearch数据迁移问题, 从2.x到5.x?

回复

ElasticsearchBrickXu 回复了问题 • 3 人关注 • 2 个回复 • 3655 次浏览 • 2017-07-21 11:21 • 来自相关话题

ES数据备份和清理-快照

Elasticsearchziyou 发表了文章 • 3 个评论 • 13418 次浏览 • 2018-04-04 17:41 • 来自相关话题

        这两天在看ES数据备份方面的事情,因为我们ES集群的存储空间有限,需要定时对ES的数据进行备份和清理,把备份的数据存储到其他地方去,然后在ES集群中释放掉。         看大家好多是主要考虑数据的安全性才做的数据的备份,我们就比较low了,我们就是因硬盘不够,要删数据。上个项目是因为日志数据重要程度一般般,就保留了一个月的量,然后也没有做数据的备份转储。这次上线的项目要求就高点了,需要删除的数据存储到其他地方,但是硬盘的容量更低了。所以就需要做ES数据备份和转储,转储完了就清掉。         这里是用ES官方推荐的数据快照方案,这个方案可以完全通过ES API进行操作,比价方便、快捷,在数据恢复方面也是方便的。 先上ES官方的链接,大家看看:https://www.elastic.co/guide/e ... .html         然后就是步骤了: 执行过程分为两部分: 一、准备过程 1、添加ES备份存储目录 在集群的每台机器上进行目录创建 mkdir /home/esdata 2、挂载共享文件存储目录 在集群的每台机器上目录挂载 mount -t nfs 10.70.61.80:/home/apmtest /home/esdata 3、修改ES集群配置 在ES集群的每台机器上都添加path.repo属性 path.repo: ["/home/esdata"] 4、重启ES集群 ES集群重启必须是关闭所有机器后,再启动。 5、建立备份仓库 PUT /_snapshot/my_backup    {      "type": "fs",        "settings": {          "location": "/home/esdata"        }  } 二、备份数据快照 1、通过API执行备份 PUT /_snapshot/my_backup/snapshot_2018.03.01?wait_for_completion=true  {      "indices": "filebeat-2018.03.01"  }           快照仓库需要注意的地方就是需要在整个集群的每一台机器上挂载相同的共享文件存储目录,保证在集群里做的操作是输出到相同的地方的。   下面来一份shell脚本,可以定时执行,是做ES数据的定时转储和清理的,大家可以借鉴一下
#!/bin/bash
ESIP=127.0.0.1
DATE=`date -d '-2 days' +'%Y.%m.%d'`
INDEX='{ "indices": "'$DATE'" }'
echo "begin to backup ES LOG..."
 
curl -XPUT "http://$ESIP:9200/_snapshot/my_backup/snapshot_$DATE?wait_for_completion=true" -d $INDEX
 
echo "----------------------------------------------------------------------------"
 
echo "begin to clean ES LOG..."
 
URL1="http://$ESIP:9200/filebeat-$DATE"
 
curl -XDELETE $URL1

 
echo "TRANSFER AND CLEAN ES LOG END!"