elasticsearch提供了快照功能:

1、在elsticsearch的配置文件中定义一个path.repo路径配置

path.repo: ["/elk/my_backup"]

重新启动elasticsearch服务

创建备份的文件夹并赋予权限

mkdir -p /elk/my_backup
chmod /elk/my_backup
chown -R elasticsearch.elasticsearch /elk/*

创建repository:

 curl -XPUT 'http://192.168.0.224:9200/_snapshot/backup' -d '
{
"type": "fs", //表示类型为文件系统
"settings": {
"location": "/elk/my_backup/backup", //存储的路径
"compress": true //是否支持压缩
}
}'

查看repository信息

$ curl -XGET 'http://192.168.0.224:9200/_snapshot/backup?pretty'

2、创建快照

备份工作在后台运行

$ curl -XPUT 'http://192.168.0.224:9200/_snapshot/backup/snapshot_1(快照名)'

同步执行,加wait_for_completion 标志,备份完成后才返回,如果数据量大的话,会花很长时间

$ curl -XPUT 'http://192.168.212.190:9200/_snapshot/my_backup/snapshot_2?wait_for_completion=true'

如果只想备份部分索引的话,可以加上indices 参数:

$ curl -XPUT 'http://192.168.212.190:9200/_snapshot/my_backup/snapshot_3' -d '
{
"indices": "index_1,index_2",
"ignore_indices": "missing"
}'

查看备份信息

$ curl -XGET 'http://192.168.0.224:9200/_snapshot/backup/snapshot_2'

如果要查看所有索引的信息,使用如下api:

$ curl -XGET 'http://192.168.0.224:9200/_snapshot/backup/_all'

另外还有个一api可以看到更加详细的信息:

$ curl -XGET 'http://192.168.0.224:9200/_snapshot/backup/snapshot_2/_status'

删除备份

$ curl -XDELETE '
http://192.168.0.224:9200/_snapshot/backup/snapshot_2'

备份脚本

[root@node2 elk]# vim esback.sh

#!/bin/bash
#elasticsearch备份脚本
#快照的名字
filename=`date +%Y%m%d%H`
#备份的文件名
backesFile=es$filename.tar.gz
cd /elk/my_backup
mkdir es_dump
cd es_dump
#删除之前的快照,$filename为上一次快照的名字
curl -XDELETE "192.168.0.224:9200/_snapshot/backup/$filename?pretty"
echo 'sleep 30'
sleep
#创建一个快照
curl -XPUT "192.168.0.224:9200/_snapshot/backup/$filename?wait_for_completion=true&pretty"
echo 'sleep 30'
sleep
#拷贝仓库内的快照到一个文件并打包
cp -a /elk/my_backup/backup/* /elk/my_backup/es_dump
cd ..
tar czf $backesFile es_dump/
rm es_dump -rf

3、恢复

恢复snapshot_1里的全部索引:

$ curl -XPOST 'http://192.168.0.224:9200/_snapshot/backup/snapshot_1/_restore'

api额外的参数:

$ curl -XPOST 'http://192.168.0.224:9200/_snapshot/backup/snapshot_1/_restore' -d '
{
"indices": "index_1",
"rename_pattern": "index_(.+)",
"rename_replacement": "restored_index_$1"
}'

indices: 设置只恢复index_1索引

rename_pattern 和rename_replacement: 用来正则匹配要恢复的索引,并且重命名。和备份一样,api会立刻返回值,然后在后台执行恢复,使用wait_for_completion 标记强制同步执行。

以使用下面两个api查看状态

$ curl -XGET 'http://192.168.0.224:9200/_recovery/'

[root@node2 elk]# vim esrestore.sh

#!/bin/bash
filename=''
backesFile=es$filename.tar.gz
cd /elk/my_backup/
tar zxvf $backesFile
rm /elk/my_backup/backup/* -rf
cp -a /elk/my_backup/es_dump/* /elk/my_backup/backup
curl -XPOST "192.168.0.224:9200/logs*/_close"
curl -XPOST "192.168.0.224:9200/.kiba*/_close"
echo 'sleep 5'
sleep
curl -XPOST "192.168.0.224:9200/_snapshot/backup/$filename/_restore?pretty"
#curl -XPOST '192.168.0.224:9200/_snapshot/backup/$filename/_restore?pretty' -d '
#{
# "indices":"logs*"
#}'
echo 'sleep 5'
sleep
#curl -XPOST '192.168.0.224:9200/logs*/_open'
#curl -XPOST '192.168.0.224:9200/.kiba*/_open'
rm es_dump -rf
 

转自

elk的备份与恢复-landanhero-51CTO博客 https://blog.51cto.com/landanhero/1912049

elk的备份与恢复【转】的更多相关文章

  1. ELK Stack总结

    目录 ELK Stack 介绍 Elasticsearch 概念1(基础) CRUD基本用法 概念2(文本解析器) 查询 分析/聚合 概念3(架构原理的补充) Logstash基础 Kibana的数据 ...

  2. MySQL 数据库的备份与恢复

    一.MySQL 常见的备份方式 1. 直接拷贝数据库文件(物理拷贝) 2. 使用 mysqldump 工具备份 3. 使用 mysqlhotcopy 工具备份 4. 使用 mysql 的主从同步复制, ...

  3. ELK日志系统:Filebeat使用及Kibana如何设置登录认证

    根据elastic上的说法: Filebeat is a lightweight, open source shipper for log file data. As the next-generat ...

  4. 5分钟部署ELK+filebeat5.1.1

    标题有点噱头,不过网络环境好的情况下也差不多了^_^   1. 首先保证安装了jdk.   elasticsearch, logstash, kibana,filebeat都可以通过yum安装,这里前 ...

  5. 大数据平台架构(flume+kafka+hbase+ELK+storm+redis+mysql)

    上次实现了flume+kafka+hbase+ELK:http://www.cnblogs.com/super-d2/p/5486739.html 这次我们可以加上storm: storm-0.9.5 ...

  6. ELK+Kafka集群日志分析系统

    ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...

  7. 第三十章 elk(1) - 第一种架构(最简架构)

    软件版本: es:2.4.0 logstash:2.4.0 kibana:4.6.1 一.logstash安装(收集.过滤日志.构建索引) 1.下载:https://www.elastic.co/do ...

  8. #研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案

    郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...

  9. ELK+redis搭建nginx日志分析平台

    ELK+redis搭建nginx日志分析平台发表于 2015-08-19   |   分类于 Linux/Unix   |  ELK简介ELKStack即Elasticsearch + Logstas ...

随机推荐

  1. flutter 返回键监听

    本篇为继上片监听返回键基础下优化: 以下做返回键监听两种情况: import 'package:fluttertoast/fluttertoast.dart'; //提示第三方插件 1. 单击提示双击 ...

  2. VScode插件以及配置

    Auto Rename Tag —— 自动同步修改标签 AutoFileName —— 自动补全路径提示 background —— 一个萌萌的插件,可以自己设置vsc的背景图 Bootstrap 3 ...

  3. 大白话 Scala 控制抽象

    2019-04-14 关键字: Scala.Scala控制抽象.Scala高阶函数 本篇文章系笔者根据当前掌握的知识对 Scala 控制抽象的教材知识总结,不保证文章所述内容的绝对.完全正确性. 在 ...

  4. jquery 设置 transform/translate 获取 transform/translate 的值

    //获取 transform 值 var reg=/matrix.(((-)?([0-9]+.)?\d+([, ]+)?){6})./g; var str= progressUI.css(" ...

  5. Codeforces 1108F MST Unification(最小生成树性质)

    题目链接:MST Unification 题意:给定一张连通的无向带权图.存在给边权加一的操作,求最少操作数,使得最小生成树唯一. 题解:最小生成树在算法导论中有这个性质: 把一个连通无向图的生成树边 ...

  6. BUG-‘Tokenizer’ object has no attribute ‘oov_token’

    使用keras包实现NLP问题时,报错 /lib/python3./dist-packages/keras/preprocessing/text.py”, line , in texts_to_seq ...

  7. python_类与对象学习笔记

    class Phone: #手机属性===>类属性 # color='black' # price=4500 # brand='oppo' # size='5.5' #参数化-魔法方法--初始化 ...

  8. ORACLE创建表空间 新建用户 授权

    --建表空间create tablespace <用户> datafile 'D:\oradatadev\<用户>.dbf' size 200mautoextend on ne ...

  9. php5.4、5.5、5.6高版本中htmlspecialchars兼容性处理

    在使用php5.4以上版本以上时会有一个函数可能会报错 如下 Warning: htmlspecialchars(): charset `gbk' not supported, assuming ut ...

  10. js关于“变量提升、作用域、私有作用域等知识点”高级解题思路

    var i = 2,    x = 5;var fn = function (x) {    x += 3;    return function (y) {        console.log(( ...