elasticsearch 目录数据存储目录data会存哪些信息

您无法通过简单地获取其所有节點的数据目录的副本来备份elasticsearch 目录集群elasticsearch 目录可能正在运行时更改其数据目录的内容; 复制其数据目录不能期望捕获其内容的一致图像。如果您尝试从此类备份还原群集则可能会失败并报告损坏和/或丢失的文件。或者虽然它默默地丢失了一些数据,但它似乎已经成功了备份群集的唯一可靠方法是使用快照和还原功能。

注意:这里说的是集群暂时不确定单机ES是否支持靠背data文件夹的方式备份和迁移。关注本被博客随后会测试并在生产环境迁移。

与存储数据的任何软件一样定期备份数据非常重要。elasticsearch 目录副本在运行时提供高可用性; 它们使您能够容忍零星的节点丢失而不会中断服务。

但是副本不能提供灾难性故障保护。为此您需要对群集进行真正的备份 - 一个完整的副本,以防出现问题

要备份群集的数据,可以使用快照API

快照是从正在运行的elasticsearch 目录集群中获取的备份。您可以拍摄单个索引或整个群集的快照并将其存储在共享文件系统的存储库中,并且有一些插件支持S3HDFS,AzureGoogle云存储等上的远程存储库。

快照以递增方式拍摄这意味着,当咜创建索引的快照时elasticsearch 目录避免复制已存储在存储库中的任何数据,作为同一索引的早期快照的一部分因此,非常频繁地拍摄群集的快照会很有效

如果您的集群启用了elasticsearch 目录安全特性,那么在备份数据时必须授权快照API调用

snapshot_user角色是一个保留角色,可以分配给调用快照端点嘚用户如果用户所做的只是将定期快照作为备份过程的一部分,那么这是惟一必要的角色这个角色包括列出所有现有快照(任何存储库)嘚特权,以及列出和查看所有索引的设置包括.security索引。它不授予在索引中创建存储库、恢复快照或搜索的特权因此,用户可以查看和快照所有索引但不能访问或修改任何数据。

除了备份集群中的数据之外备份其配置也很重要——尤其是当集群变得很大且难以重构时。

配置信息驻留在每个集群节点上的常规文本文件中敏感的设置值(如监视程序通知服务器的密码)在一个二进制安全容器elasticsearch 目录中指定。密钥存储库文件一些设置值是相关配置数据的文件路径,比如ingest geo ip数据库所有这些文件都包含在ES_PATH_CONF目录中。

所有对配置文件的更改都是通过手动編辑文件或使用命令行实用程序完成的但不是通过api。实际上在初始设置之后,这些更改并不频繁

我们建议您使用您选择的文件备份軟件定期(理想情况下,每天)备份您的elasticsearch 目录配置($ES_PATH_CONF)目录

我们建议您为这些配置文件制定一个配置管理计划。您可能希望将它们签入版本控制或者通过您选择的配置管理工具提供它们。

其中一些文件可能包含敏感数据例如密码和TLS密钥,因此您应该研究您的备份软件和/或存储解决方案是否能够加密这些数据

配置文件中的一些设置可能被集群设置覆盖。通过为快照API指定include_global_state: true(默认)参数可以在数据备份快照中捕获这些设置。或者您可以使用get settings API以文本格式提取这些配置值:

您可以将它的输出与其他配置文件一起存储为一个文件。

  • elasticsearch 目录安全功能将配置数据(如角色定义和API密钥)存储在专用特殊索引中此“系统”数据补充了安全设置配置,也应进行备份
  • 其他弹性堆栈组件(如Kibana和机器学习)将其配置数据存储在其他专用索引中。从elasticsearch 目录的角度来看这些只是数据,因此您可以使用常规数据备份过程

三、备份群集的安全配置

安全配置信息位于两个位置: 文件和 索引。

备份基于文件的安全配置
Kerberos域的节点间通信和私钥文件 所有这些都存储在里面 ES_PATH_CONF; 路径设置是相對的。

要备份所有此配置您可以使用传统的基于文件的备份。

  • 文件备份必须在每个群集节点上运行
  • 文件备份也将存储非安全配置。不支持仅备份安全功能配置备份是完整配置状态的时间点记录。

.security-77.x版本中命名该.security别名总是指向适当的索引。该指数包含了这是不是在配置攵件中可用数据不能可靠地备份使用标准的文件系统工具。该数据描述:

  • 本机领域中用户的定义(包括散列密码)

在.security这样索引中包含的資源和定义除配置信息完整的安全功能备份中需要所有这些信息。

使用标准elasticsearch 目录快照功能进行备份 .security就像使用任何其他数据索引一样。為方便起见这里是完整的步骤:

1、创建可用于备份.security索引的存储库。最好为此特殊索引提供专用存储库如果您愿意,还可以将其他Elastic Stack组件嘚系统索引快照到此存储库

调用此API的用户必须具有提升的manage集群特权,以防止非管理员窃取数据

2、创建一个用户,并仅为其分配内置的snapshot_user角色

下面的例子在本地域中创建了一个新的用户snapshot_user,但是用户属于哪个域并不重要:

> 此参数值捕获存储在全局集群元数据中的所有持久性设置以及其他配置(如别名和存储的脚本)。注意这包括非安全性配置,并且它补充了文件系统配置文件备份但不替换。
> 索引格式只能在┅个主要版本中兼容并且不能还原到比原始版本更早的版本上。例如您可以将安全快照从6.6.0恢复到6.7.0集群中,但是不能将其恢复到运行elasticsearch 目錄 6.5.0或7.0.0的集群中
安全索引的快照通常包含敏感数据,例如用户名和密码哈希值由于密码是使用加密哈希存储的 ,因此快照的披露不会自動使第三方能够作为您的某个用户进行身份验证或使用API??密钥但是,它会泄露机密信息
在需要还原这些备份时,保护这些备份的完整性也很重要如果第三方能够修改存储的备份,则他们可能能够安装后门如果将快照加载到elasticsearch 目录集群中,则会授予访问权限
- .security在专用存储库中快照索引,严格限制和审核读写访问
- 如果有迹象表明已读取快照,请更改本机领域中用户的密码并撤消API密钥
- 如果有迹象表明赽照已被篡改,请不要将其恢复目前,还原选项无法检测恶意篡改

我要回帖

更多关于 elasticsearch data 的文章

 

随机推荐