当您的Kibana集群因异常状况被重置后,.kibana_{num}({num}为变量,例如.kibana_1、.kibana_2等)索引也会被重置,因此您需要恢复对应索引来恢复相关数据。本文以.kibana_1索引为例,介绍如何通过快照快速恢复.kibana_{num}索引。
背景信息
.kibana_{num}索引用来保存Kibana大盘、Kibana Index Patterns等Kibana配置信息,而Kibana默认通过别名.kibana读取数据,当系统中存在多个.kibana_{num}索引时,实际上只有一个会使用.kibana别名。
在复杂的业务场景下,例如,.kibana_1索引结构发生损坏或Kibana访问异常,需要删除.kibana_1索引重置Kibana集群,或因定时任务配置异常导致.kibana_1索引被删除,集群重启后Kibana相关数据被重置,.kibana_task_manager_1会自动生成一个绑定.kibana别名的.kibana_1索引,之前在Kibana上配置的Kibana Index Patterns、Dashboards和用户角色等信息均会被重置。
- 手动重建Kibana Index Patterns或用户角色。
- 将快照数据恢复到备份索引,通过reindex方式将备份索引数据写入到.kibana_1中。
- 通过快照的方式直接恢复。
说明 本文主要介绍使用快照的方式直接恢复备份索引,此方式相比较于其他两种方案恢复比较快速。
前提条件
- 集群已开启自动快照备份或在快照中手动备份过系统索引,且快照中保存的.kibana_1索引结构正常。
- 确保集群中存在.kibana别名,并应用到.kibana_1索引。如果不存在.kibana_1索引,建议重启Kibana服务,初始化生成.kibana_1索引。
操作步骤
常见问题
-
Q:通过快照恢复.kibana索引,报错.kibana和.kibana_1别名冲突,如何处理?
A:删除.kibana_1索引后,Elasticsearch无法通过别名读写数据,因此会自动创建.kibana索引。而快照中正常的.kibana_1索引会使用.kibana作为别名,所以在恢复的时候会报错别名冲突,建议先删除.kibana索引再进行恢复。
-
Q:在非7.10版本的实例中,执行快照恢复命令恢复.kibana_1索引时,遇到如下index_closed_exception报错,如何处理?A:出现以上报错的原因是由于.kibana_1索引的状态为close,导致在Kibana控制台中执行任何命令时都会报错。建议您通过ECS连接Elasticsearch,并通过curl命令完成对应操作,详细信息请参见通过curl命令访问与管理阿里云Elasticsearch。例如,通过快照恢复.kibana_1索引的curl命令如下。
curl -u <user>:<password> -XPOST "http://<host>:<port>/_snapshot/aliyun_auto_snapshot/<yourSnapshotId>/_restore" -H 'Content-Type: application/json' -d'{"indices": ".kibana_1","rename_pattern": ".kibana_1","rename_replacement": ".kibana_1"}'