将已保存的对象从 OpenSearch 仪表板迁移到 OpenSearch 用户界面 - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将已保存的对象从 OpenSearch 仪表板迁移到 OpenSearch 用户界面

如果您在 OpenSearch 仪表板中有现有的仪表板、可视化效果、索引模式和其他已保存的对象,则可以在 OpenSearch 用户界面中迁移和重复使用它们。

迁移到 OpenSearch UI 的好处:

  • 高可用性 — OpenSearch 用户界面托管在中, Amazon Web Services 云 并在域升级和维护期间保持可用,而 OpenSearch 仪表板托管在域中,将暂时不可用。

  • 多数据源 — OpenSearch UI 可以提供跨多个数据源的整合单一管理面板,包括 OpenSearch 域、无服务器集合以及与 Amazon S3 和 Amazon 的数据连接 CloudWatch;而每个 OpenSearch 控制面板只能处理一个域或集合。

  • OpenSearch 用户界面上还提供了 AI 助手和工作区等其他功能。了解更多:在 Amazon OpenSearch 服务中使用 OpenSearch 用户界面.

迁移概述

迁移过程包括以下高级步骤:

  1. 从 OpenSearch 仪表板导出保存的对象-使用 OpenSearch 仪表板保存的对象管理 UI 或导出 API 将仪表板、可视化效果、索引模式和其他对象下载为以换行符分隔的 JSON (NDJSON) 文件。

  2. 创建 OpenSearch UI 应用程序和工作区-如果尚未创建,请创建 OpenSearch UI 应用程序和工作区来接收导入的对象。

  3. 在 OpenSearch UI 中注册数据源-将您的 OpenSearch 域与 OpenSearch UI 应用程序关联并将其注册为工作空间内的数据源。导入对象中的索引模式引用此数据源。

  4. 将@@ 保存的对象导入 OpenSearch 用户界面-使用 OpenSearch 用户界面保存的对象管理用户界面或导入 API 将 NDJSON 文件上传到目标工作区。

  5. 验证导入的对象-在 OpenSearch 用户界面中打开仪表板和可视化效果以验证它们是否显示正确,以及数据是否来自关联的域或集合。

先决条件

在迁移之前,请验证以下先决条件:

注意

OpenSearch 用户界面仅支持 1.3 及更高 OpenSearch 版本。在尝试迁移已保存的对象之前,请确认您的 OpenSearch 域运行的是 1.3 或更高版本。

步骤 1:从 OpenSearch 仪表板导出已保存的对象

使用管理 UI 或导出 API 从 OpenSearch 仪表板中导出保存的对象。导出会生成一个以换行符分隔的 JSON (NDJSON) 文件,其中包含所有选定的已保存对象类型及其依赖关系。

在 OpenSearch 仪表板上手动导出

使用 OpenSearch 仪表板管理 UI 导出已保存的对象
  1. 打开您的 OpenSearch 仪表板实例。

  2. 在左侧导航面板中,选择管理

  3. 在 “仪表板管理” 下,选择 “已保存的对象”。

  4. 选择要导出的已保存对象。要导出特定类型的所有对象,请使用搜索栏按类型进行筛选。要导出所有对象,请选中表格标题中的复选框。

  5. 选择导出

  6. 在 “导出保存的对象” 对话框中,确保选中 “包括相关对象”。此选项包括所选已保存对象所依赖的所有对象,例如可视化所引用的索引模式。只有当您打算手动管理依赖关系时,才清除此选项。

  7. 选择 “导出” 将.ndjson文件下载到本地计算机。

提示

当您选择 “包括相关对象” 时,导出的 NDJSON 文件将包含呈现所选仪表板和可视化效果所需的所有已保存对象,包括它们的相关索引模式、可视化和搜索对象。这简化了导入步骤并避免了缺少参考错误。

通过 API 导出

您可以使用 OpenSearch 仪表板已保存对象导出 API 以编程方式导出已保存的对象。这对于自动迁移或将导出步骤集成到管道中非常有用。 CI/CD

注意

如果您的 OpenSearch 域名启用了精细访问控制,则必须在导出请求中提供身份验证凭证。通过添加带有用户名和密码的-u标志,使用 HTTP 基本身份验证。有关身份验证选项的更多信息,请参阅 Amazon 服务中的精细访问控制 OpenSearch

以下示例导出所有仪表板及其相关对象。将 placeholder values 替换为您自己的信息。

curl -X POST \ "https://dashboards-endpoint/_dashboards/api/saved_objects/_export" \ -u 'master-username:master-password' \ -H "Content-Type: application/json" \ -H "osd-xsrf: true" \ -d '{ "type": ["dashboard", "visualization", "index-pattern", "search"], "includeReferencesDeep": true, "excludeExportDetails": false }' \ -o saved-objects-export.ndjson

如果您的域未启用细粒度访问控制,则可以省略该标志。-u

要按 ID 导出特定的已保存对象,请使用objects参数代替type

curl -X POST \ "https://dashboards-endpoint/_dashboards/api/saved_objects/_export" \ -u 'master-username:master-password' \ -H "Content-Type: application/json" \ -H "osd-xsrf: true" \ -d '{ "objects": [ {"type": "dashboard", "id": "dashboard-id"}, {"type": "visualization", "id": "visualization-id"} ], "includeReferencesDeep": true }' \ -o saved-objects-export.ndjson
注意

要查找已保存的对象 IDs,您可以使用 “已保存对象” API 列出特定类型的所有对象。以下示例列出了所有仪表板:

curl -X GET \ "https://dashboards-endpoint/_dashboards/api/saved_objects/_find?type=dashboard" \ -u 'master-username:master-password'

响应中包含每个已保存对象的 ID。在 OpenSearch 仪表板中查看对象时,您还可以在浏览器 URL 中找到 ID。

第 2 步:将保存的对象导入 OpenSearch 用户界面

导出保存的对象后,您可以手动或通过 API 将 NDJSON 文件导入 OpenSearch 用户界面。

在 OpenSearch UI 上手动导入

使用 OpenSearch UI 管理 UI 导入已保存的对象
  1. 打开您的 OpenSearch UI 应用程序并导航到目标工作区。

  2. 在工作区中,从顶部导航栏中选择 “资产” 或转到工作区资产页面。

  3. 选择 “导入”,打开 “导入资源” 对话框。

  4. 选择 “选择文件”,然后选择从 OpenSearch 仪表板中导出的.ndjson文件。

  5. 对于冲突管理,请选择以下选项之一:

    • 创建具有唯一性的新资源 IDs(默认)- IDs 为所有导入的对象生成新资源,避免与现有资源发生冲突。

    • 检查现有资产-检查与现有对象是否存在冲突。选中后,选择以下子选项之一:

      • 自动覆盖冲突-自动替换具有相同 ID 的现有资产。

      • 请求对冲突采取行动-系统会提示您单独解决每个冲突。

  6. 选择导入

  7. 查看导入摘要。

通过 API 导入

要使用带有 Amazon 签名版本 4 身份验证的 API 导入保存的对象,必须先获取数据源 ID,然后在导入请求中使用它。将 placeholder values 替换为您自己的信息。

步骤 1:获取工作空间的数据源 ID:

curl -X GET \ "https://opensearch-ui-endpoint/w/workspace-id/api/saved_objects/_find?type=data-source" \ --aws-sigv4 "aws:amz:region:opensearch" \ --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \ -H "x-amz-security-token: $AWS_SESSION_TOKEN" \ -H "osd-xsrf: true"
注意

响应包含数据源 ID。在 OpenSearch UI 中查看数据源时,您还可以在浏览器 URL 中找到数据源 ID。

步骤 2:使用步骤 1 中的数据源 ID 导入已保存的对象:

curl -X POST \ "https://opensearch-ui-endpoint/w/workspace-id/api/saved_objects/_import?overwrite=true&dataSourceId=data-source-id" \ --aws-sigv4 "aws:amz:region:opensearch" \ --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \ -H "x-amz-security-token: $AWS_SESSION_TOKEN" \ -H "osd-xsrf: true" \ -F "file=@saved-objects-export.ndjson"
注意

这些示例使用 curl 的内置--aws-sigv4选项(在 curl 7.75 或更高版本中可用)对请求进行签名。在运行命令之前,请将您的 Amazon 凭证设置为环境变量:AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY、和AWS_SESSION_TOKEN(如果使用临时证书)。