已保存对象
Elastic Stack Serverless
Kibana 允许您保存对象,供您自己将来使用或与他人分享。每种已保存的对象类型都有不同的功能。例如,您可以保存使用 Discover 进行的搜索查询,这使您可以
- 分享搜索链接
- 以 CSV 格式下载完整的搜索结果
- 使用相同的搜索查询启动聚合可视化
- 将 Discover 搜索结果嵌入到仪表板中
为了便于组织,每个已保存的对象都可以有一个名称、标签 和类型。使用全局搜索可以快速打开已保存的对象。
编辑、导入、导出和复制已保存的对象。这些对象包括仪表板、可视化、地图、数据视图、Canvas 工作区和其他已保存的对象。
您可以使用导航菜单或 全局搜索字段 找到 已保存对象 页面。

要访问 已保存对象,您必须拥有具有 Saved Objects Management
Kibana 权限的角色。
授予对 Saved Objects Management
的访问权限,授权用户管理 Kibana 中的所有已保存对象,包括他们可能没有其他权限访问的应用程序管理的对象。
- 要在其关联的应用程序中查看和编辑已保存的对象,请单击对象标题。
- 要显示使用此对象的对象,以便您了解删除它的影响,请单击操作图标
,然后选择 关系。
- 要删除一个或多个对象,请选中其复选框,然后单击 删除。
使用导入和导出在不同的 Kibana 实例之间移动对象。当您有多个开发和生产环境时,这些操作很有用。当您有大量对象要更新并且想要批量处理时,导入和导出也运行良好。
Kibana 还为您的 Elastic Stack 部署 和 无服务器项目 提供了导入和导出已保存对象 API,以自动执行此过程。
在单个操作中导入多个对象。
- 在工具栏中,单击 导入。
- 选择包含要导入的对象的 NDJSON 文件。
- 选择导入选项。默认情况下,Kibana 中已存在的已保存对象将被覆盖。
- 单击 导入。
savedObjects.maxImportExportSize
配置设置限制了文件中包含的已保存对象的数量。savedObjects.maxImportPayloadBytes
设置限制了您可以导入的文件的整体大小。
通过选择或类型导出对象。
- 要导出特定对象,请在表中选择它们,然后单击 导出。
- 要按类型导出对象,请在工具栏中单击 导出对象。
Kibana 创建一个包含所有已保存对象的 NDJSON。默认情况下,NDJSON 包括与已保存对象相关的子对象。导出的仪表板包括其关联的数据视图。
savedObjects.maxImportExportSize
配置设置限制了您可以导出的已保存对象的数量。
在空间之间复制已保存的对象及其相关对象。
- 单击操作图标
。
- 单击 复制到空间。
- 指定是自动覆盖目标空间中已存在的任何对象,还是在每个对象的基础上解决它们。
- 选择要在其中复制对象的空间。
复制操作会自动包含与已保存对象相关的子对象。
每个版本,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 将执行以下步骤
- 如果 Kibana 在目标空间中找到具有完全相同 ID 的匹配已保存对象,那将是导入目标 — 您可以覆盖该目标或跳过它。
- 否则,如果 Kibana 找到具有不同 ID 但具有相同来源的匹配已保存对象,那将是导入目标 — 同样,您可以覆盖该目标或跳过它。
- 否则,如果具有完全相同 ID 的已保存对象存在于不同的空间中,Kibana 将为导入目标生成一个随机 ID,从而保留已保存对象的原始来源。
- 否则,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
选项将其删除。