迁移已保存的对象
编辑迁移已保存的对象
编辑每次升级 Kibana 时,都会执行升级迁移,以确保所有已保存的对象与新版本兼容。
Kibana 包含一个升级助手来帮助您为升级做准备。要访问助手,请转到Stack Management > 升级助手。
Kibana 7.12.0 及更高版本使用新的迁移过程和索引命名方案。在升级之前,请阅读您 Kibana 版本的文档。
kibana.index
和 xpack.tasks.index
配置设置已过时,在 8.x 中不再考虑。如果您正在使用自定义索引名称,请在尝试升级到 8.x 之前执行必要的调整。
已保存的对象迁移是如何工作的
编辑当您启动新的 Kibana 安装时,会在启动插件或服务 HTTP 流量之前执行升级迁移。在升级之前,请关闭旧节点,以防止丢失已确认的写入。为了减少旧节点丢失已确认写入的可能性,Kibana 7.12.0 及更高版本会向过时的索引添加写入阻止。
已保存的对象存储在多个索引中。虽然它们都以 .kibana*
前缀开头,但还存在其他 .kibana*
索引,它们不用于存储已保存的对象。下表列出了每个 Kibana 版本使用的已保存的对象索引。
表 1. 每个 Kibana 版本的已保存对象索引和别名
从以下版本升级 | 索引 | 别名 |
---|---|---|
6.5.0 到 7.3.x |
|
|
7.4.0 到 7.11.x |
|
|
7.11.x 到 8.7.x |
|
|
8.8.0+ |
|
|
从 7.11.0 开始,每个已保存的对象索引都有几个别名,例如,.kibana_8.8.0_001
索引有一个默认别名 .kibana
和一个版本别名 .kibana_8.8.0
。默认别名(例如,.kibana
和 .kibana_task_manager
)始终指向最新的已保存的对象索引。然后,版本别名与已部署的 Kibana 版本对齐。
从 8.6.0 开始,索引名称不一定与已部署的 Kibana 版本对齐。当对特定索引的更新兼容时,Kibana 将保留现有索引,而不是创建新索引。这使得升级过程更加高效。以下示例说明了 8.8.0 部署的完全有效状态
-
.kibana_8.8.0_001
索引,带有.kibana
和.kibana_8.8.0
别名。 -
.kibana_task_manager_8.7.0_001
索引,带有.kibana_task_manager
和.kibana_task_manager_8.8.0
别名。
从 8.8.0 开始,Kibana 将主要的已保存对象索引拆分为多个索引,如上表所示。从以前的版本升级时,Kibana 迁移过程将根据其类型,将 .kibana
索引中的某些已保存的对象重新索引到新索引中。请注意,.kibana
索引仍然存在,并且继续存储多种已保存的对象类型。
旧的 Kibana 索引
编辑随着部署的逐步升级,在 Elasticsearch 中创建了多个 Kibana 索引:(.kibana_1
、.kibana_2
、.kibana_7.12.0_001
、.kibana_7.13.0_001
、.kibana_8.0.0_001
等)。Kibana 仅使用默认和版本别名指向的那些索引。其他较旧的 Kibana 已保存的对象索引可以安全地删除,但会作为历史记录保留下来,并方便将 Kibana 回滚到以前的版本。