elk的备份与恢复【转】
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的备份与恢复【转】的更多相关文章
- ELK Stack总结
目录 ELK Stack 介绍 Elasticsearch 概念1(基础) CRUD基本用法 概念2(文本解析器) 查询 分析/聚合 概念3(架构原理的补充) Logstash基础 Kibana的数据 ...
- MySQL 数据库的备份与恢复
一.MySQL 常见的备份方式 1. 直接拷贝数据库文件(物理拷贝) 2. 使用 mysqldump 工具备份 3. 使用 mysqlhotcopy 工具备份 4. 使用 mysql 的主从同步复制, ...
- ELK日志系统:Filebeat使用及Kibana如何设置登录认证
根据elastic上的说法: Filebeat is a lightweight, open source shipper for log file data. As the next-generat ...
- 5分钟部署ELK+filebeat5.1.1
标题有点噱头,不过网络环境好的情况下也差不多了^_^ 1. 首先保证安装了jdk. elasticsearch, logstash, kibana,filebeat都可以通过yum安装,这里前 ...
- 大数据平台架构(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 ...
- ELK+Kafka集群日志分析系统
ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...
- 第三十章 elk(1) - 第一种架构(最简架构)
软件版本: es:2.4.0 logstash:2.4.0 kibana:4.6.1 一.logstash安装(收集.过滤日志.构建索引) 1.下载:https://www.elastic.co/do ...
- #研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案
郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...
- ELK+redis搭建nginx日志分析平台
ELK+redis搭建nginx日志分析平台发表于 2015-08-19 | 分类于 Linux/Unix | ELK简介ELKStack即Elasticsearch + Logstas ...
随机推荐
- 剑指Offer面试题 二维数组中的查找
题目链接:https://www.nowcoder.com/questionTerminal/abc3fe2ce8e146608e868a70efebf62e 题目大意: 略 分析: 对萌醒很开拓思维 ...
- Python进阶6---序列化与反序列化
序列化与反序列化*** 为什么要序列化 ? 定义 pickle库 #序列化实例 import pickle lst = 'a b c'.split() with open('test.txt','wb ...
- golang类型断言
一.介绍 类型断言,由于接口是一般类型,不知道具体类型,如果要转成具体类型,就需要使用类型断言 例子: package main import "fmt" func main(){ ...
- LODOP中tfoot和tbody中间线连不起来
这种情况发生在使用ADD_PRINT_TABLE时,ADD_PRINT_TABLE是Lodop中专门用来输出table表格的语句,它有很多特点,比如该语句不切行(详细可参考查看本博客相关博文:LODO ...
- 如何使用django操作数据库,向原有表中添加新的字段信息并建立一个多对多的关系?
(注:本人用的pycharm开发工具) 1.在你要添加新字段的app的 models.py 文件中添加需要新增的字段(book表新增authors字段并和author建立多对多关系,author表新增 ...
- ajax存在跨域问题,为什么浏览器不允许js跨域请求?
举个例子,马蓉平时去某个酒店开房,酒店有在线的管理系统,该管理系统地址叫 xxoo.hotels.com 然后她正常登录该酒店管理系统欣赏着自己跟宋喆开房的记录,这一切都很正常,然后xxoo.hote ...
- PowerBi利用Python Script绕过ODBC来导入MongoDB数据
- [算法]浅谈求n范围以内的质数(素数)
汗颜,数学符号表达今天才学会呀-_-# 下面是百度百科对质数的定义 质数(prime number)又称素数,有无限个. 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数. 求质数的方法 ...
- git的命令行输出正确地显示中文文件名
参考:https://stackoverflow.com/questions/22827239/how-to-make-git-properly-display-utf-8-encoded-pathn ...
- win 10 dpi:150% 与 win 7 dpi:150% 的不同之处
由于 win 7 和 win 10 的 dpi 处理方式不同,导致我们写的客户端程序在 win 7 上运行正常,在 win 10(dpi:150%)上运行不正常了. 具体的描述,可参考:解决win10 ...