Elasticsearch 集群快照的定期备份设置指南

ops/2024/12/19 20:18:31/

Elasticsearch 集群快照的定期备份设置指南

概述

快照
在给定时刻对整个集群或者单个索引进行备份,以便在之后出现故障时可以基于之前备份的快照进行快速恢复。

前提条件
准备一个备份存储盘,本指南采用的是AWS EFS文件系统做为备份盘

一、挂载集群备份存储路径

  1. 在Elasticsearch集群的每一个节点上,执行以下操作创建基础目录:

    mkdir /es-backup-warehouse
    

    此目录将作为挂载点及后续备份数据存储的根目录,要确保节点磁盘空间充足,能容纳预期的备份数据量。

  2. 挂载远程存储设备到本地目录,假设远程NFS服务器IP为10.0.139.*,执行如下命令:

    sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 10.0.139.*:/ /es-backup-warehouse
    

    关于挂载参数解释:

    • nfsvers=4.1:指定使用NFS 4.1协议,该版本协议在性能、安全性及功能特性上有诸多优化,能更好适配集群备份场景。
    • rsizewsize:均设为1048576字节(即1MB),用于优化网络读写数据块大小,减少因小数据块频繁传输导致的网络开销,提升数据传输效率。
    • hard:采用硬挂载方式,若网络连接意外中断,挂载进程会持续尝试重连,直至恢复通信,保证备份过程不因短暂网络故障而中断,确保数据完整性。
    • timeo=600:设定连接超时时间为600秒,若发起连接请求600秒内未成功建立,将触发超时处理,避免无限期等待连接。
    • retrans=2:限制网络异常时重传次数为2次,防止因过度重传造成网络拥塞,同时保障一定的数据传输可靠性。
    • noresvport:取消对保留端口使用限制,使挂载能灵活选择可用端口通信,增强网络兼容性。
  3. 在挂载目录内创建子目录用于存放Elasticsearch备份数据,并赋予合适权限:

    mkdir /es-backup-warehouse/es-backup-warehouse
    chown elasticsearch:elasticsearch /es-backup-warehouse/es-backup-warehouse
    

    这一步确保elasticsearch用户及用户组拥有对该子目录的读写权限,满足Elasticsearch备份与还原操作需求。

二、配置Elasticsearch节点的快照仓库

  1. 使用vim编辑器打开Elasticsearch配置文件:
    vim /etc/elasticsearch/elasticsearch.yml
    
  2. 添加或修改以下配置项,指定快照仓库路径:
    path.repo: ["/es-backup-warehouse/es-backup-warehouse"]
    
    注意路径务必与实际创建的备份存储子目录路径完全匹配,Elasticsearch依赖此路径定位存储位置。

三、滚动重启Elasticsearch集群节点

  1. 由于修改了关键配置文件,正在运行的集群需执行滚动重启操作,以保障集群持续可用及数据一致性。
    详细步骤参考官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/restart-cluster.html#restart-cluster-rolling (:根据自己elasticsearch版本进行参考)
    • 在重启过程中,可通过以下命令实时监控集群健康状况:
    GET /_cluster/health?pretty=true
    
    该命令以易读格式展示集群健康信息,涵盖节点存活数、数据分片分布、索引状态等关键指标,助您及时察觉潜在问题。
    • 同时,利用以下命令查看节点状态:
    GET _cat/nodes
    
    输出节点详细信息,包括名称、IP地址、负载情况、内存使用等,辅助排查节点重启异常。

四、在Kibana中进行快照生命周期的管理

  1. 登录Kibana管理界面,进入“管理” -> “Elasticsearch” -> “快照和还原”相关页面创建存储库。

  2. 按要求填写存储库配置:

    • 存储库名称:es-backup-repositories,建议名称简洁且唯一,方便后续管理识别。
    • 存储类型:选择“共享文件系统”,对应之前挂载的NFS共享存储,保障数据存储一致性与可访问性。
    • 位置:填写与path.repo配置一致的路径,即/es-backup-warehouse/es-backup-warehouse,确保Elasticsearch与Kibana对存储位置认知统一。
    • 快照压缩:设为true,启用压缩功能,减少备份文件存储空间占用,但会增加CPU运算负担,适用于存储或带宽资源紧张场景。
    • 块大小:设为100mb,定义备份数据块大小,影响备份性能与资源分配。较大块可减少文件系统操作次数,提升效率,但还原时可能增加内存占用,需依集群性能等综合考量。
    • 每秒最大快照字节数:设为100mb,限制备份写入速度,防止过度占用网络带宽影响正常业务,可按需调整。
    • 每秒最大还原字节数:设为100mb,控制还原时数据读取速率,避免对集群性能冲击过大。

    :其它配置,多久备份一次,什么时间开始备份,等根据自己业务环境情况进行设置

五、验证存储库及设置开机自动挂载

  1. 创建存储库后,在Kibana界面或通过Elasticsearch API验证,无报错即表示成功,可用于后续快照备份与还原操作。
  2. 为实现开机自动挂载存储,编辑/etc/fstab文件:
    vi /etc/fstab
    
    添加以下挂载项(假设使用AWS EFS,地址为fs-*.efs.us-west-2.amazonaws.com:/,依实际情况调整):
    fs-*.efs.us-west-2.amazonaws.com:/ /es-backup-warehouse nfs4 defaults,_netdev,nofail 0 0
    
    保存/etc/fstab后,执行以下命令测试配置是否生效:
    mount -a
    

六、在Kibana查看集群及节点状态

  1. 如需在Kibana查看集群健康状态,执行:
    GET /_cluster/health?pretty=true
    
  2. 查看节点状态则执行:
    GET _cat/nodes
    
    这两个命令有助于随时掌握集群运行状况,及时发现问题并处理,保障集群稳定高效运行,为数据备份及整体业务提供坚实支撑。

通过以上步骤,完成了从存储路径挂载、节点配置、Kibana存储库创建到验证及自动挂载设置的全流程操作,确保Elasticsearch集群备份存储功能完备可靠,数据安全得以有效保障,后续可依备份策略定期执行快照操作。


http://www.ppmy.cn/ops/143280.html

相关文章

uniapp 微信小程序 均分数据展示

效果图 数据展示&#xff0c;可自行搭配 html <view class"num-wrapper"><view class"num-item" click.stop"routerGo(跳转的地址)"><text class"num">&#xffe5;{{ 要展示的数据 || 0}}</text><view…

软件包git没有可安装候选

‌在Ubuntu系统中安装git时出现“软件包git没有可安装候选”的错误&#xff0c;通常是因为软件源列表未更新或软件包信息不完整。‌ 解决方法 ‌更新软件源‌&#xff1a;首先&#xff0c;确保你的系统软件源是最新的。可以通过以下命令更新软件源&#xff1a; sudo apt-get u…

微积分复习笔记 Calculus Volume 2 - 4.2 Direction Fields and Numerical Methods

4.2 Direction Fields and Numerical Methods - Calculus Volume 2 | OpenStax

回型矩阵:JAVA

解题思路&#xff1a; 通过定义四条边界&#xff1b;top,left,right,bottom,来循环&#xff0c;当top>bottom&&left>right的时候循环终止 循环结束的条件&#xff1a; 链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述…

Spring(二)AOP、切入点表达式、AspecJ常用通知的类型、Spring中的事务管理

文章目录 一、AOP 1、定义 2、特点 3、AOP中的术语&#xff08;连接点、切入点、通知、目标、代理&#xff09; 4、配置 &#xff08;1&#xff09;下载AOP相关jar &#xff08;2&#xff09;启动AspectJ支持 5、使用 6、切入点表达式 7、AspecJ常用通知的类型 &…

二、windows环境下vscode使用wsl教程

本篇文件介绍了在windows系统使用vscode如何连接使用wsl&#xff0c;方便wsl在vscode进行开发。 1、插件安装 双击桌面vscode&#xff0c;按快捷键CtrlShiftX打开插件市场&#xff0c;搜索【WSL】点击安装即可。 2、开启WSL的linux子系统 点击左下方图标【Open a Remote Win…

linux 免密远程到多个服务器如何实现

要实现从主机 192.168.1.2 免密远程连接到 192.168.1.3 和 192.168.1.4&#xff0c;您可以使用 SSH 密钥对进行身份验证。以下是详细的步骤&#xff1a; 步骤 1&#xff1a;生成 SSH 密钥对 在 192.168.1.2 主机上生成 SSH 密钥对&#xff08;如果您尚未生成过&#xff09;&a…

深入了解AI编程工具Cursor:智能编程的未来

随着人工智能技术的不断发展&#xff0c;AI 编程工具的出现极大地提升了开发者的编程效率和代码质量。**Cursor** 是其中一款备受关注的 AI 编程工具&#xff0c;它通过智能代码补全、错误提示、代码优化和自动生成等功能&#xff0c;为开发者提供了前所未有的编程体验。在本文…