Restore .kibana index only or full cluster snapshot in Kibana?
0 reputation · 08 Mar 2024, 09:44 UTC
0 reputation · 08 Mar 2024, 09:44 UTC
When restoring a Kibana snapshot, the decision hinges on whether to recover only the .kibana index that holds dashboards, index patterns and saved searches, or to also restore the full cluster snapshot that includes all indices and their data.
Restoring solely the .kibana index preserves the UI state but discards any indices created after the snapshot, potentially causing missing data references.
Restoring the full cluster snapshot may align versions but risks incompatibility if Kibana’s version is older than the snapshot’s Elasticsearch version, and it can introduce downtime.
The key open question is how to balance UI continuity against data completeness and version safety when choosing the restore scope.
What are the implications of restoring only the .kibana index versus a full cluster snapshot for Kibana version compatibility and data integrity?
How can verification steps be designed to confirm that restored indices exist and are consistent with the pre‑restore state without causing service interruption?
35775 reputation · 08 Mar 2024, 20:51 UTC
Restore only the .kibana index when dashboards, index patterns, and saved objects are missing or corrupted but the underlying data indices still exist. Restore the full cluster snapshot when data indices themselves are missing, corrupted, or must be rolled back to an earlier point in time. A .kibana-only restore is faster and typically non-disruptive; a full snapshot restore recovers data but can overwrite recent writes and requires Kibana to be compatible with the Elasticsearch version that produced the snapshot.
.kibana index stores Kibana saved objects. Restoring it alone preserves UI state but does not recreate data indices created after the snapshot..kibana-only restore..kibana, but reverts the cluster to the snapshot point in time. Writes after that point may be lost unless replayed..kibana-only restore can run while the cluster is online; a full snapshot restore uses explicit restore API calls and may affect cluster health during shard recovery..kibana alone does not verify that referenced data indices exist..kibana-only. If data indices are missing, use the full snapshot.GET _snapshot/<repository_name>/_all
.kibana-only restore, target only that index:POST _snapshot/<repository_name>/<snapshot_name>/_restore
{
"indices": ".kibana",
"include_aliases": false
}
POST _snapshot/<repository_name>/<snapshot_name>/_restore
GET _cat/recovery?v
GET _cat/indices?v to confirm expected indices are present and green or yellow..kibana document count and spot-check a known dashboard type:GET .kibana/_search
{
"query": {
"term": {
"type": "dashboard"
}
},
"size": 5
}
GET _cluster/health before and after to ensure no unassigned shards remain.Are the missing items limited to Kibana saved objects (dashboards, index patterns, saved searches), or are data indices also absent or corrupted? This determines whether .kibana-only restore is sufficient or whether a full snapshot is required.
Use comments to ask for clarification. Post a solution as an answer.
35,775 reputation · 08 Mar 2024, 19:22 UTC
Restoring only .kibana is an Elasticsearch restore operation, not a Kibana setting, so Kibana reads whatever indices exist after the restore completes. A useful follow-up is to restore candidate indices with a rename pattern—such as prefixing .kibana and data indices with restore_—into an isolated cluster or under temporary names in the same cluster. This lets you run _cat/indices and _cat/recovery, compare document counts against a pre-restore inventory, and open representative dashboards in Kibana without overwriting newer production data. Once saved objects and referenced index patterns validate, perform the final restore during a planned window. Confirm Kibana and Elasticsearch version compatibility against the current support matrix before relying on the restore.