将自定义 AWS S3 快照存储库连接到 Elastic Cloud

作者:来自 Elastic  Annie Hansen, Stef Nestor

在本博客中,我们将介绍如何通过 Elasticsearch 的快照将我们已提交的集群数据备份到 AWS S3 存储桶中。在 Elastic Cloud(企业版)中,Elastic 在其 found-snapshots 存储库下提供内置备份服务。Elasticsearch 还支持云(Cloud)和本地设置的自定义存储库,连接到所有平台类型的数据存储(如 AWS S3、GCP 和 Azure)以及本地文件系统。这些内置和自定义快照存储库为数据备份提供了很好的选择;自定义存储库用于长期存储和开关备份;找到快照用于持续的、最近的备份。用户经常将这两种方法集成到他们的生产集群中。

连接自定义 AWS S3 快照存储库 Elastic Cloud 支持故障排除

创建 AWS S3 存储桶

首先,我们将按照 AWS 指南设置一个 AWS S3 存储桶来存储我们的数据。

在 Create bucket 下,填写 Bucket name,其他选项保留默认设置。然后,单击 Next 创建此存储桶来保存我们的数据。在我们的示例中,存储桶名称将是 s3-custom-repository-bucket-demo。

设置 AWS IAM 策略

接下来,我们将通过创建 AWS IAM 策略(creating an AWS IAM policy)来设置对新创建的存储桶的访问授权。

在 Create policy 的第一步(称为 Specify permissions)下,我们将 Elastic Cloud 推荐的 S3 权限复制到 JSON “Policy editor” 中 — 仅保留 AWS 最初为其 “Version” JSON 键设置的值。你可能更喜欢 Elasticsearch 文档中概述的进一步权限限制。我们将用我们的存储桶名称 s3-custom-repository-bucket-demo 替换指南中 Resource 下的 JSON 占位符 bucket-name 。然后,我们将选择 Next 继续执行步骤 2:Review and create

我们将输入 Policy name 和 Description,然后选择 Next。对于我们的示例,策略名称将是 s3-custom-repository-demo-policy。

创建 IAM 用户

接下来,我们将创建一个 AWS IAM 用户(create an AWS IAM user),并通过我们新创建的 IAM 策略授予其授权。在 Create user 流程下,我们将从步骤 1 开始:Specify user details。我们将输入s3-custom-repository-demo-user 作为 user name,将页面上的所有其他选项保留为默认值,然后选择 Next 继续执行步骤 2:Set permission

在这里,我们将通过选择 “ Permissions Options” 值及 Attach polices directly 来为用户附加 IAM 策略。接着,在 “Permissions policies” 下,我们将搜索并启用我们的 IAM 策略。完成后,保留其他选项为默认设置,然后单击 “Next” 进入第 3 步:“Review and create”,最后滚动并点击 “Create user”。

设置 IAM 用户访问密钥

Elasticsearch 通过 IAM 用户的 access and secret key(而不是用户名和密码)连接到 AWS S3。为了将存储桶连接到我们的 Elasticsearch 集群,我们将创建一个访问密钥和密钥,以便稍后存储在部署的 Elasticsearch 密钥库中。在我们的 IAM 用户下,我们将选择 Create access key

这将引导我们进入步骤 1:Access key best practices & alternatives 下的 Create access key 流程。

对于 Use case,我们将选择 Third-party service,然后单击 Next。这将带我们进入第 2 步 - 可选:optional: Set description tag,我们将通过再次单击 Next 跳过该步骤,进入第 3 步:Step 3: Retrieve access keys

我们将安全地存储我们的 IAM 用户的新访问和密钥。

连接到部署

我们将把这些 IAM 用户访问权限和密钥添加到我们的 Elastic Cloud 部署中。

在我们部署的 security tab 下,我们将导航到 elasticsearch-keystore 并单击 Add settings。如果单独的 S3 存储库连接有多个访问和密钥对,Elasticsearch S3 存储库 JSON将通过 client 字符串映射我们的访问和密钥。我们的 IAM 用户的访问密钥将是 s3.client.CLIENT_NAME.access_key 的值,而密钥将是 s3.client.CLIENT_NAME.secret_key 的值,其中 CLIENT_NAME 是该 S3 JSON 映射的 client 值的占位符。由于 client 默认为 default,我们将在示例中使用相同的值,因此我们在 Setting name 下插入的访问和密钥值将分别存储在密钥 s3.client.default.access_key 和 s3.client.default.secret_key 下。

添加后,我们的密钥将显示在 “Security keys”下。出于安全考虑,添加后无法查看或编辑我们的密钥库值 — 只能删除以重新创建。

创建存储库连接

我们现在将通过 Kibana 注册我们的 AWS S3 Elasticsearch 存储库。我们将通过在 Dev Tools 下运行 node reload secure settings 将安全设置加载到集群中。

成功响应将发出 _nodes.failed: 0。我们的访问和密钥库对现已添加到 Elasticsearch 中,因此我们现在可以注册我们的 AWS S3 存储库。然后,我们将导航到 “Stack Management ” 下的 “Snapshot and Restore”,单击 “Repositories” 选项卡,然后选择 “Register a Repository”。

我们将为存储库定义 Name,并选择 AWS S33 作为 Repository Type。在我们的示例中,我们的存储库名称为 aws_s3。请注意,虽然大多数 Elasticsearch 功能(如分配)在最初注册后根据其存储的 uuid 从存储库加载数据,但 ILM 可搜索快照(ILM searchable snapshots)确实使用存储库 name 作为标识符。在迁移可搜索快照(searchable snapshot)数据时,需要在 Elasticsearch 集群之间进行对齐。

在 Register repository 下,添加我们的 Bucket 名称 s3-custom-repository-demo-bucket,保留所有其他选项的默认值,然后选择 Save。在我们的示例中,我们将 Client 留空,以便默认为 default 以匹配我们的 Elasticsearch 密钥库 CLIENT_NAME。请注意,一个 Elasticsearch 集群中一次只能有一个读写连接对存储库起作用;根据需要,请确保标记为 readonly,以避免意外覆盖或损坏数据。这将带我们进入 aws_s3 存储库概览 UI 抽屉。

在这里,我们可以选择 Verification status 下的 Verify repository,以确认所有节点都可以连接到我们的 AWS S3 存储桶并通过初始验证检查。我们还可以使用验证快照存储库从 Dev Tools 运行相同的测试。

这两个输出都返回成功连接到我们的 AWS S3 存储桶的相同节点列表。

捕获快照

我们现在准备将已提交的 Elasticsearch 集群的快照备份到 AWS S3 存储桶中。请注意,Elastic Cloud 的内置存储库 found-snapshots 也通过 Elasticsearch 的快照生命周期管理 (SLM) 定期执行备份。接下来,我们将运行 create snapshot 命令以创建快照。

我们的示例快照名称是 bats。生成的快照报告 state: SUCCESS。我们可以通过导航回我们的 AWS S3 存储桶 s3-custom-repository-demo-bucket 来确认结果,它显示 Elasticsearch 已将文件和子文件夹添加到我们的根目录中。

我们做到了!观看此视频,了解上述步骤。

此时,我们可以根据需要设置快照生命周期管理,以拍摄周期快照并管理快照保留。或者,我们可以断开 AWS S3 存储库的连接,将其连接到不同的 Elasticsearch 集群,以迁移此新快照数据。

本文中描述的任何特性或功能的发布和时间均由 Elastic 自行决定。任何当前不可用的特性或功能可能无法按时交付或根本无法交付。

原文:https://www.elastic.co/blog/custom-aws-s3-snapshot-repository-elastic-cloud

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/924768.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

部署 Prometheus

实验环境 IP地址服务192.168.88.10Prometheus服务端, Consul, Grafana, Node-Exporter192.168.88.77MySQL, Node-Exporter192.168.88.30Nginx,Node-Exporter 一、Prometheus Server 端安装和相关配置 【Prometheus1.sh】 (1)上传 prometh…

第29天 MCU入门

目录 MCU介绍 MCU的组成与作用 电子产品项目开发流程 硬件开发流程 常用元器件初步了解 硬件原理图与PCB板 常见电源符号和名称 电阻 电阻的分类 贴片电阻的封装说明: 色环电阻的计算 贴片电阻阻值计算 上拉电阻与下拉电阻 电容 电容的读数 二极管 LED 灯电路 钳位作…

汽车免拆诊断案例 | 2017款捷豹F-PACE车发动机偶尔怠速不稳

故障现象  一辆2017款捷豹F-PACE车,搭载2.0 L GTDi发动机,累计行驶里程约为16万km。车主反映,车辆组合仪表上发动机故障灯点亮(图1),且发动机偶尔怠速不稳。 图1 发动机故障灯点亮 故障诊断 接车后试车…

Cobalt Strike 4.8 用户指南-第十一节 C2扩展

11.1、概述 Beacon 的 HTTP 指标由 Malleable Command and Control (Malleable C2) 配置文件控制。Malleable C2 配置文件是一个简单的程序,它指定如何转换数据并将其存储在事务中。转换和存储数据的同一程序(向后解释&#xff0…

上传镜像docker hub登不上和docker desktop的etx4.vhdx占用空间很大等解决办法

平时使用docker一般都在Linux服务器上,但这次需要将镜像上传到docker hub上,但是服务器上一直无法登录本人的账号,(这里的问题应该docker 网络配置中没有开代理的问题,因服务器上有其他用户使用,不可能直接…

[BUUCTF]ciscn_2019_n_8

题目 解题 先连接看看有什么信息 返回whats your name 没有其他信息 看程序基本信息 32位 拉到ida32查看 打开发现如下 由上述代码可知,需要将数组0-12装满,装什么都可以,将var[13]17才能执行system("/bin/sh") payload fro…

orangepi _全志H616

1. 全志H616简介 1.1. 为什么学: 学习目标依然是Linux系统,平台是ARM架构 蜂巢快递柜,配送机器人,这些应用场景用C51,STM32单片机无法实现 (UI界面,提高用户的体验感)第三方介入库的局限性&a…

信息收集之网站架构类型和目录扫描(一)

目录 前言 1.查看域名的基本信息 2.常见的网站架构类型 3.目录扫描 前言 最近也是到了期末周了,比较空闲,把信息收集的一些方式和思路简单总结一下,顺便学习一些新的工具和一些未接触到的知识面. 1.查看域名的基本信息 新学了一个工具,kali中的whois也可以进行查看,当然在…

消息中间件用途介绍

1. 解耦(Decoupling): • 消息中间件能够将消息的生产者(Producer)和消费者(Consumer)分离开来,使它们不必直接相互依赖。这种设计降低了系统的耦合度,提升了系统的可扩展…

【Maven】Nexus私服

6. Maven的私服 6.1 什么是私服 Maven 私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的远程仓库(中央仓库、其他远程公共仓库)。一些无法从外部仓库下载到的构件,如项目组其他人员开发的…

学习ASP.NET Core的身份认证(基于Cookie的身份认证3)

用户通过验证后调用HttpContext.SignInAsync函数将用户的身份信息保存在认证Cookie中,以便后续的请求可以验证用户的身份,该函数原型如下所示,其中properties参数的主要属性已在前篇文章中学习,本文学习scheme和principal的意义及用法。 public static …

【mac】终端左边太长处理,自定义显示名称(terminal路径显示特别长)

1、打开终端 2、步骤 (1)修改~/.zshrc文件 nano ~/.zshrc(2)添加或修改PS1,我是自定义了名字为“macminiPro” export PS1"macminiPro$ "(3)使用 nano: Ctrl o (字母…

uniapp关闭sourceMap的生成,提高编译、生产打包速度

警告信息:[警告⚠] packageF\components\mpvue-echarts\echarts.min.js 文件体积超过 500KB,已跳过压缩以及 ES6 转 ES5 的处理,手机端使用过大的js库影响性能。 遇到问题:由于微信小程序引入了mpvue-echarts\echarts.min.js&…

PyTorch 模型转换为 ONNX 格式

PyTorch 模型转换为 ONNX 格式 在深度学习领域,模型的可移植性和可解释性是非常重要的。本文将介绍如何使用 PyTorch 训练一个简单的卷积神经网络(CNN)来分类 MNIST 数据集,并将训练好的模型转换为 ONNX 格式。我们还将讨论 PTH …

Three.js 和其他 WebGL 库 对比

在WebGL开发中,Three.js是一个非常流行的库,它简化了3D图形的创建和渲染过程。然而,市场上还有许多其他的WebGL库,如 Babylon.js、PlayCanvas、PIXI.js 和 Cesium,它们也有各自的特点和优势。本文将对Three.js 与这些常…

通过 JNI 实现 Java 与 Rust 的 Channel 消息传递

做纯粹的自己。“你要搞清楚自己人生的剧本——不是父母的续集,不是子女的前传,更不是朋友的外篇。对待生命你不妨再大胆一点,因为你好歹要失去它。如果这世上真有奇迹,那只是努力的另一个名字”。 一、crossbeam_channel 参考 cr…

摆脱复杂配置!使用MusicGPT部署你的私人AI音乐生成环境

文章目录 前言1. 本地部署2. 使用方法介绍3. 内网穿透工具下载安装4. 配置公网地址5. 配置固定公网地址 前言 今天给大家分享一个超酷的技能:如何在你的Windows电脑上快速部署一款文字生成音乐的AI创作服务——MusicGPT,并且通过cpolar内网穿透工具&…

挑战用React封装100个组件【001】

项目地址 https://github.com/hismeyy/react-component-100 组件描述 组件适用于需要展示图文信息的场景,比如产品介绍、用户卡片或任何带有标题、描述和可选图片的内容展示 样式展示 代码展示 InfoCard.tsx import ./InfoCard.cssinterface InfoCardProps {ti…

搭建帮助中心到底有什么作用?

在当今快节奏的商业环境中,企业面临着日益增长的客户需求和竞争压力。搭建一个有效的帮助中心对于企业来说,不仅是提升客户服务体验的重要途径,也是优化内部知识管理和提升团队效率的关键。以下是帮助中心在企业运营中的几个关键作用&#xf…

学习threejs,使用CubeCamera相机创建反光效果

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️CubeCamera 立方体相机 二、…