正在加载

已保存对象

Elastic Stack Serverless

Kibana 允许您保存对象,供您自己将来使用或与他人分享。每种已保存的对象类型都有不同的功能。例如,您可以保存使用 Discover 进行的搜索查询,这使您可以

  • 分享搜索链接
  • 以 CSV 格式下载完整的搜索结果
  • 使用相同的搜索查询启动聚合可视化
  • Discover 搜索结果嵌入到仪表板中

为了便于组织,每个已保存的对象都可以有一个名称、标签 和类型。使用全局搜索可以快速打开已保存的对象。

编辑、导入、导出和复制已保存的对象。这些对象包括仪表板、可视化、地图、数据视图、Canvas 工作区和其他已保存的对象。

您可以使用导航菜单或 全局搜索字段 找到 已保存对象 页面。

Saved Objects

要访问 已保存对象,您必须拥有具有 Saved Objects Management Kibana 权限的角色。

注意

授予对 Saved Objects Management 的访问权限,授权用户管理 Kibana 中的所有已保存对象,包括他们可能没有其他权限访问的应用程序管理的对象。

  • 要在其关联的应用程序中查看和编辑已保存的对象,请单击对象标题。
  • 要显示使用此对象的对象,以便您了解删除它的影响,请单击操作图标 更多操作,然后选择 关系
  • 要删除一个或多个对象,请选中其复选框,然后单击 删除

使用导入和导出在不同的 Kibana 实例之间移动对象。当您有多个开发和生产环境时,这些操作很有用。当您有大量对象要更新并且想要批量处理时,导入和导出也运行良好。

Kibana 还为您的 Elastic Stack 部署无服务器项目 提供了导入和导出已保存对象 API,以自动执行此过程。

在单个操作中导入多个对象。

  1. 在工具栏中,单击 导入
  2. 选择包含要导入的对象的 NDJSON 文件。
  3. 选择导入选项。默认情况下,Kibana 中已存在的已保存对象将被覆盖。
  4. 单击 导入
注意

savedObjects.maxImportExportSize 配置设置限制了文件中包含的已保存对象的数量。savedObjects.maxImportPayloadBytes 设置限制了您可以导入的文件的整体大小。

通过选择或类型导出对象。

  • 要导出特定对象,请在表中选择它们,然后单击 导出
  • 要按类型导出对象,请在工具栏中单击 导出对象

Kibana 创建一个包含所有已保存对象的 NDJSON。默认情况下,NDJSON 包括与已保存对象相关的子对象。导出的仪表板包括其关联的数据视图。

注意

savedObjects.maxImportExportSize 配置设置限制了您可以导出的已保存对象的数量。

在空间之间复制已保存的对象及其相关对象。

  1. 单击操作图标 操作
  2. 单击 复制到空间
  3. 指定是自动覆盖目标空间中已存在的任何对象,还是在每个对象的基础上解决它们。
  4. 选择要在其中复制对象的空间。

复制操作会自动包含与已保存对象相关的子对象。

每个版本,Kibana 都会引入更改已保存对象存储方式的变更。导入已保存对象时,Kibana 会运行必要的迁移,以确保导入的已保存对象与当前版本兼容。

但是,已保存的对象只能导入到相同版本、同一主版本的较新次要版本或下一个主版本。导出的已保存对象不向后兼容,无法导入到旧版本的 Kibana 中。例如

导出版本 导入版本 兼容?
8.7.0 8.8.1
7.8.1 8.3.0
8.3.0 8.11.1
8.11.1 8.6.0
7.8.1 9.0.0

Elastic Stack

过去,许多已保存的对象类型可以在不同的 空间 中具有相同的 ID。例如,如果您将仪表板 “123” 从一个空间复制到另一个空间,则第二个仪表板也将具有 “123” 的 ID。虽然已保存对象 ID 不是用户直接交互的东西,但 Kibana 的许多方面都依赖于它,特别是 URL。如果您有指向已保存仪表板的“深层链接” URL,则该 URL 包含已保存对象 ID。

自 8.0 版本起,Kibana 要求大多数已保存对象具有全局唯一 ID。这是我们需要进行的更改,以支持将已保存对象共享到多个空间。大多数已保存对象尚未能共享到多个空间,但我们需要首先开始强制执行全局唯一的对象 ID。

我们已经进行了一些增强,以尽量减少影响,本文档描述了您需要了解的有关更改及其将如何影响您的信息。

每次升级 Kibana 时,已保存对象都会迁移到新的格式。当您首次升级到 8.x 或更高版本时,此迁移过程将开始强制执行全局唯一的已保存对象 ID。

实际上,自定义空间中存在的任何旧的已保存对象都将其 ID 更改为新的 UUID,而默认空间中的已保存对象将保持不变。这就是我们如何确保每个已保存对象 ID 都是唯一的。例如:如果您在默认空间中有仪表板 “123”,在另一个空间中有仪表板 “123”,升级后,您将在默认空间中有仪表板 “123”,在另一个空间中有仪表板 “456”。

升级后,或者如果您使用 8.x 或更高版本设置新的 Kibana 实例,还有一些行为不同的地方。

当您升级 Kibana 并且已保存对象 ID 更改时,用于访问这些已保存对象的“深层链接” URL 也会更改。为了减少影响,每个现有 URL 都使用特殊的 旧 URL 别名 保存。这意味着,如果您使用已更改的已保存对象 ID 的书签,您将被重定向到该已保存对象的新 URL。

当您将已保存的对象复制到另一个空间时,Kibana 实际上会导出它并将其导入到该空间。通过这种方式,复制已保存对象一直以来的行为都类似于导入。在本文档中,当我们说“导入”时,它适用于这两个功能。

从历史上看,无论您是导入还是复制已保存的对象,Kibana 都将在该空间中最多创建一个已保存对象的副本。如果您多次导入已保存的对象,Kibana 将覆盖现有对象,因为它使用了相同的 ID。由于已保存对象 ID 现在是全局唯一的,因此 Kibana 通过跟踪每个已保存对象的来源来维护此功能。当您在 8.x 或更高版本中导入对象时,Kibana 使用已保存对象 ID来源来确定其目标。

如果您使用“检查现有对象”选项导入已保存的对象,Kibana 将执行以下步骤

  1. 如果 Kibana 在目标空间中找到具有完全相同 ID 的匹配已保存对象,那将是导入目标 — 您可以覆盖该目标或跳过它。
  2. 否则,如果 Kibana 找到具有不同 ID 但具有相同来源的匹配已保存对象,那将是导入目标 — 同样,您可以覆盖该目标或跳过它。
  3. 否则,如果具有完全相同 ID 的已保存对象存在于不同的空间中,Kibana 将为导入目标生成一个随机 ID,从而保留已保存对象的原始来源。
  4. 否则,Kibana 将使用给定的 ID 创建已保存的对象。

例如,您在 export.ndjson 文件中有一个已保存的对象,并且您设置了一个全新的 Kibana 实例。您尝试使用“检查现有对象”和“自动覆盖冲突”选项导入已保存的对象。第一次导入已保存的对象时,Kibana 将创建一个具有相同 ID 的新对象(上述步骤 4)。如果您再次导入它,Kibana 将找到该对象并覆盖它(上述步骤 1)。如果您随后创建不同的空间并在其中导入它,Kibana 将创建一个具有随机 ID 的新对象(上述步骤 3)。最后,如果您再次将其导入到第二个空间中,Kibana 将找到第二个具有匹配来源的对象并覆盖它(上述步骤 2)。

警告

当您导入一个已保存的对象,并且它以不同的 ID 创建时,如果 1. 它包含指向其他已保存对象的弱链接(例如,具有 Markdown URL 以导航到另一个仪表板的仪表板)并且 2. 对象的 ID 已更改(上述步骤 3),这些弱链接将被破坏。有关更多信息,请参阅变更日志

如果您直接使用已保存对象 API,您应该注意这些更改

警告

自 8.7.0 版本以来,某些已保存对象 API 已被弃用。有关更多信息,请参阅API 文档

  • 使用 create 或 bulk create API 时,您可能会遇到 **无法** 使用 overwrite: true 选项覆盖的冲突错误。 如果在不同的空间中已经存在具有此 ID 的已保存对象,或者在同一空间中存在此 ID 的旧版 URL 别名,则可能发生这种情况。
  • 使用 import 或 copy to space API 时,对象可能会使用如上所述的不同 ID 创建。
  • 使用 delete API 时,如果已保存的对象存在于多个空间中,则只能使用 force 选项将其删除。
© . All rights reserved.