kibana快照存储库实现定时备份elasticsearch集群索引
利用kibana的快照存储库备份es索引
文章目录
- 利用kibana的快照存储库备份es索引
- 1.快照存储库备份es索引
- 2.部署nfs存储并在es节点进行挂载
- 2.1.部署nfs存储
- 2.2.配置es集群各节点增加nfs存储配置
- 3.在kibana界面创建快照存储库
- 3.1.点击Managerment---快照存储库---注册存储库
- 3.2.填写存储库名称,存储库类型选择共享文件系统
- 3.3.填写存储库信息
- 3.4.点击注册之后点击验证存储库
- 3.5.验证存储库成功
- 4.es索引库备份
- 4.1.创建linuxbook索引库并插入数据
- 4.2.在es上查看新建索引的数据
- 4.3.创建一个快照01
- 4.4.查看快照信息
- 5.在linuxbook索引中增加数据
- 5.1.在索引库中增加数据
- 5.2.再创建一个快照02
- 6.将索引还原出第一个快照的状态
- 6.1.还原es-backup-1-2021.1.26快照中的linuxbook索引
- 6.2.查看es上是否有还原的索引库
- 6.3.查看数据是否是快照01时的5条数据
- 7.还原第二个快照
- 8.定时创建索引快照形成es索引库备份
- 8.1.通过shell脚本实现
- 8.2.通过快照存储库策略实现
- 8.2.1.创建策略
- 8.2.2.查看策略信息
- 8.3.查看快照是否定时创建
1.快照存储库备份es索引
es的索引库也是需要备份的,我们可以通过kibana上的快照存储库,给索引每天创建快照,定时备份
注意:使用nfs作为索引备份存储路径时,一定要为存储路径的属组和属主全部改成elasticsearch,否则会报没权限
但是修改属主属组有个问题,有的es集群的elasticsearch用户的uid和其他的会不同,这时就导致在nfs上改了属主属组但是在某个es节点不识别这个uid,这也会导致没权限,最好的解决办法就是在es安装的时候首先创建elasticsearch用户并且制定uid号,这样就能保证有权限使用nfs存储了
针对es索引的备份,可以创建一个快照,快照就相当于一个备份,这个快照里面包含了所有的索引,可以借助kibana上的快照存储库,定时的进行索引备份
es索引备份恢复大致思路:首先针对要备份的索引创建一个快照01,然后在往索引里面添加一些数据,再创建一个快照02,然后还原01查看效果,在还原02查看效果
kibana快照存储备份的好处就是:备份全部索引,每次备份占用的资源特别小,且备份时间在几秒左右
环境准备
IP | 服务 |
---|---|
192.168.16.106 | es |
192.168.16.105 | es+kibana+nfs |
2.部署nfs存储并在es节点进行挂载
2.1.部署nfs存储
[root@kibana ~]# yum -y install nfs-utils[root@kibana ~]# vim /etc/exports
/data/es_backup 192.168.16.0/24(rw,sync,no_root_squash)
[root@kibana ~]# systemctl restart nfs
[root@kibana ~]# mkdir /data/es_backup[root@kibana ~/soft]# showmount -e
Export list for kibana:
/data/es_backup 192.168.16.0/24
2.2.配置es集群各节点增加nfs存储配置
所有节点都配置
1.挂载nfs
[root@elasticsearch ~]# mkdir /data/es_backup
[root@elasticsearch ~]# mount 192.168.16.105:/data/es_backup/ /data/es_backup2.配置es指定存储路径
[root@elasticsearch ~]# vim /etc/elasticsearch/elasticsearch.yml
path.repo: /data/es_backup
[root@elasticsearch ~]# systemctl restart elasticsearch3.授权,在nfs上操作
[root@kibana ~]# chmod 777 /data/es_backup/
[root@kibana ~]# chown -R elasticsearch.elasticsearch /data/es_backup/如果nfs没有elasticsearch用户需要创建出来,并且uid和gid号要和es每个集群都保持一致
3.在kibana界面创建快照存储库
3.1.点击Managerment—快照存储库—注册存储库
3.2.填写存储库名称,存储库类型选择共享文件系统
名称:es索引备份
存储类型选择共享文件系统
3.3.填写存储库信息
位置(共享存储路径):/data/es_backup
块大小:100mb,根据实际来填写
3.4.点击注册之后点击验证存储库
点击验证存储库
3.5.验证存储库成功
点击右侧的验证存储库,状态是已连接表示存储库可以正常使用了,如果状态是未连接很有可能是nfs存储权限的问题
4.es索引库备份
4.1.创建linuxbook索引库并插入数据
创建一个linuxbook索引库,用于还原前后的效果对比
[root@elaticsearch ~]# curl -XPOST '127.0.0.1:9200/linuxbook/book?pretty' -H 'Content-Type: application/json' -d '{
"id": 1,
"book_name": "nginx",
"book_jg": "35¥",
"book_ys": "206",
"book_group": "web"
}'
插入5条数据数据,包含创建索引时的一条
[root@elasticsearch ~]# curl -XPOST '127.0.0.1:9200/linuxbook/book?pretty' -H 'Content-Type: application/json' -d '{
"id": 2,
"book_name": "ansible",
"book_jg": "20¥",
"book_ys": "300",
"book_group": "zdh"
}'[root@elasticsearch ~]# curl -XPOST '127.0.0.1:9200/linuxbook/book?pretty' -H 'Content-Type: application/json' -d '{
"id": 3,
"book_name": "shell",
"book_jg": "20¥",
"book_ys": "3110",
"book_group": "shell"
}'
[root@elasticsearch ~]# curl -XPOST '127.0.0.1:9200/linuxbook/book?pretty' -H 'Content-Type: application/json' -d '{
"id": 4,
"book_name": "tomcat",
"book_jg": "20¥",
"book_ys": "1024",
"book_group": "web"
}'
[root@elasticsearch ~]# curl -XPOST '127.0.0.1:9200/linuxbook/book?pretty' -H 'Content-Type: application/json' -d '{
"id": 5,
"book_name": "python",
"book_jg": "20¥",
"book_ys": "11024",
"book_group": "python"
}'
4.2.在es上查看新建索引的数据
linuxbook索引已经创建,数据插入成功
4.3.创建一个快照01
一个快照里面包含所有的索引数据,可以每天定时制作一个快照,这就是es的备份方式
创建快照的命令只能在kibana上执行,在交互式使用curl命令,会报错,因为我们的存储库是中文的
PUT /_snapshot/es索引备份/es-backup-1-2021.1.26?wait_for_completion=true解释:PUT 提交方式/_snapshot 快照目录es索引备份 存储库es-backup-1-2021.1.26 快照名称wait_for_completion 参数指定是在初始化快照(默认)后立即返回请求还是等待快照完成
整体来说就是在es索引备份存储库中创建一个es-backup-2021.1.26快照信息curl命令
curl -XPUT '127.0.0.1:9200/_snapshot/es索引备份/es-backup-1-2021.1.26?wait_for_completion=true'
创建完快照点击Managerment—快照存储库—快照 就可以看到我们创建的快照信息了
4.4.查看快照信息
GET /_snapshot/es索引备份/es-backup-1-2021.1.26
可以看到有6个分片,那是因为有6个索引,一个索引一个分片
点击快照名也可以看快照的详细信息
服务器上生成的快照文件
5.在linuxbook索引中增加数据
5.1.在索引库中增加数据
在kibana上增加就可以了
POST /linuxbook/book?pretty
{
"id": 6,
"book_name": "linux",
"book_jg": "50¥",
"book_ys": "389",
"book_group": "system"
}
POST /linuxbook/book?pretty
{
"id": 7,
"book_name": "windows",
"book_jg": "50¥",
"book_ys": "789",
"book_group": "system"
}
POST /linuxbook/book?pretty
{
"id": 8,
"book_name": "jenkins",
"book_jg": "70¥",
"book_ys": "287",
"book_group": "jenkins"
}
POST /linuxbook/book?pretty
{
"id": 9,
"book_name": "elk",
"book_jg": "99¥",
"book_ys": "10000",
"book_group": "elk"
}
POST /linuxbook/book?pretty
{
"id": 10,
"book_name": "k8s",
"book_jg": "100¥",
"book_ys": "10000",
"book_group": "k8s"
}
POST /linuxbook/book?pretty
{
"id": 11,
"book_name": "prometheus",
"book_jg": "100¥",
"book_ys": "10000",
"book_group": "prometheus"
}
查看es上是否新增了数据
5.2.再创建一个快照02
这个快照里面包含了刚刚插入的6条数据
PUT /_snapshot/es索引备份/es-backup-2-2021.1.26?wait_for_completion=true
6.将索引还原出第一个快照的状态
es索引的还原可以选择不覆盖现有的索引,可以相当于将原来的索引复制一份出来
6.1.还原es-backup-1-2021.1.26快照中的linuxbook索引
es-backup-1-2021.1.26这个快照中的linuxbook索引只有5条数据,我们还原一下,查看是否正确
找到要还原的快照,点击类似于下载的按钮,可以看到提示的是还原
勾选取消所有索引,包括系统所有的按钮,如果这个勾选了,那么该快照中的所有索引都会被还原
只选择我们要还原的linuxbook索引,选择后下面会提示将还原1个索引
勾选重命名索引,将还原的索引库还原到es时改个名字,避免数据覆盖
将linuxbook索引重命名为linuxbook_huanyuan_20200126
继续点击下一步
摘要信息确认无误后点击还原快照
还原结束后会在还原状态那边看到是否成功
6.2.查看es上是否有还原的索引库
已经有我们还原的linuxbook索引并且也已经重命名了
6.3.查看数据是否是快照01时的5条数据
数据没问题,还原成功
7.还原第二个快照
第二个快照还原方式和第一个快照还原一模一样,只需要修改一下还原的索引名即可
还原成功
在es上查看数据,数据11条,完整无误
8.定时创建索引快照形成es索引库备份
8.1.通过shell脚本实现
1.编写脚本[root@elasticsearch /data/es_backup]# vim es_index_bak.sh
#!/bin/bashday=`date +%Y.%m.%d`
curl -XPUT "http://192.168.75.21:9200/_snapshot/es索引备份/es-index-backup-${day}"2.赋权
[root@elasticsearch /data/es_backup]# chmod a+x es_index_bak.sh3.制作定时任务,每天的零点30分进行备份
[root@elasticsearch /data/es_backup]# crontab -e
30 0 * * * /data/es_backup/es_index_bak.sh
8.2.通过快照存储库策略实现
8.2.1.创建策略
点击Managerment—快照存储库—策略—创建策略
填写策略信息
名称:es索引每日备份
快照名称:<es-backup-{now/d}> 官网配置:https://www.elastic.co/guide/en/elasticsearch/reference/7.6/date-math-index-names.html
存储库选择es索引备份,频率选择day,时间选择03:30
这样生成的下一次快照时间就是每天上午的11:30进行备份,设置11:30主要为了测试,一般还是要在凌晨进行备份,具体为什么选择03:30对应11:30,差了8个小时,这里也不是很清楚,估计是时区的问题,我是上午10点24创建的,时间写03:30就对应了下午的11:30,可以来回调整,直到根据自己的合理匹配了就可以
快照设置保持默认即可
设置快照的保留天数,这里保留30天
信息复查没问题后点击创建策略
8.2.2.查看策略信息
只要下次快照的时间是我们理想中的即可
快照策略也可以立即运行、编辑、删除
8.3.查看快照是否定时创建
备份已经自动创建
还原linuxbook索引,验证备份是否可用
查看es索引数据
kibana快照存储库实现定时备份elasticsearch集群索引相关推荐
- dnf台服升级mysql_MySQL Yum存储库 安装、升级、集群
添加MySQL Yum存储库 首先,将MySQL Yum存储库添加到系统的存储库列表中.按着这些次序: 选择并下载适用于您的平台的发行包. 使用以下命令安装下载的发行包,替换platform-and- ...
- Kubernetes中使用CronJob定时备份etcd集群数据
2019独角兽企业重金招聘Python工程师标准>>> Kubernetes中使用CronJob定时备份etcd集群数据 注意:这里的内容已经过时! 使用kubernetes1.12 ...
- mysql 升级到集群_MySQL Yum存储库 安装、升级、集群
添加MySQL Yum存储库 首先,将MySQL Yum存储库添加到系统的存储库列表中.按着这些次序: 选择并下载适用于您的平台的发行包. 使用以下命令安装下载的发行包,替换platform-and- ...
- Elasticsearch集群索引分片未分配unassigned导致集群状态红色red异常若干问题解决记录
一.背景 今天收到告警短信发现某个业务系统几台服务器的日志收集服务filebeat均已下线,把Filebeat都重启之后,准备到Kibana查阅业务系统的日志,检索异常条目,发现从凌晨开始的日志条目都 ...
- elasticsearch 集群搭建 + kibana配置
elasticsearch 集群搭建 + kibana配置 一.elasticsearch 集群搭建 1.下载并解压elasticsearch 2.ES集群搭建 2.1 打开防火墙9200,9300端 ...
- 如何快速部署一个Elasticsearch集群?
作者:无敌码农 来源:无敌码农 今天的文章给大家介绍下Elasticsearch这一目前在"搜索"和"分析"领域使用十分广泛的技术组件.并演示如何快速构建一个E ...
- elasticsearch集群介绍及数据存储过程原理
elasticsearch集群介绍原理 Elasticsearch集群架构介绍 集群架构介绍 节点介绍 Elasticsearch集群搭建 Elasticsearch分片介绍 主分片 复制分片 Ela ...
- Elasticsearch基础15——Elasticsearch集群健康管理
Elasticsearch关于集群的API 查看集群健康状态 请求地址 GET /_cat/health?v 请求结果 参数含义 参数 说明 status 集群状态,red红色表示集群不可用,yell ...
- 用Docker搭建Elasticsearch集群
用Docker搭建Elasticsearch集群 对于用Docker搭建分布式Elasticsearhc集群的一个介绍,以及一些实施中遇到问题的总结 搜索服务简述 结合业务的场景,在目前的商品体系需要 ...
最新文章
- HPE 的 OpenSwitch 项目得到 Linux 基金会支持
- Hillstone 防火墙备份脚本
- 核心交换机的链路聚合、冗余、堆叠、热备份
- SAP Spartacus 找不到登录入口的问题 - 如何使用 Schematics 安装 user package
- Spring Boot,@ EnableWebMvc和常见用例
- POJ2391 Ombrophobic Bovines
- Java多线程学习四十三:
- Android开发笔记——快速入门(从入门ACT到Fragment放肆)
- Talib技术因子详解(十)
- H3C无线控制器与Windows2008NPS结合实现无线终端的802.1X认证
- 网络代理之后无法抓包的解决方案
- 最小二乘法求回归直线方程的详细推导过程
- np.sum和np.add.reduce
- Mysql 1055错误
- 微信小程序--给头像添加logo(生成海报同理)
- [CTS2019]氪金手游(容斥+树形背包DP)
- 镭速传输流量版:随时开启企业大数据加速传输超能力
- [存储-测试工具]vdbench文件测试随机IO混合读写配置模板
- java+js实现展示本地文件夹下的所有图片demo
- 广西铁路局计算机类待遇怎么样,南宁铁路局月薪待遇 如何进入铁路工作
热门文章
- 【mysql】HikariCP不断打印WARN日志Failed to validate connection JDBC4Connectio Possibly consider using a shor
- 基于titanic数据集介绍数据分析处理流程
- Hostapd的安装与使用
- QT 系列博客:为什么要用QT?
- 服务器阻止程序运行怎么破,Discuz论坛对服务器的请求已遭到某个扩展程序的阻止问题解决方法...
- java模拟post发送文件
- TCPcopy安装、部署
- 【计算机组成原理】期末复习
- Git 工作中怎么用?
- python对局域网所有人进行arp攻击