LoginSignup
2
1

More than 5 years have passed since last update.

Amazon Elasticsearch Service × Kibanaでindex復元エラー:cannot restore index [.kibana] because it's open

Last updated at Posted at 2018-09-20

概要

Amazon Elasticsearch Service × Kibana で構築されたシステムで、
_restore apiでindexを復元するときに、
「cannot restore index [.kibana] because it's open」
というエラーについてメモします。

要因

Elasticsearch バージョン 5.1 以降では、Amazon ES が .kibana インデックスをモニタリングし、削除されている場合は再作成します。この動作により、復元が失敗します。

前提知識まとめ

・aws関連
・Elasticsearch関連(https://www.elastic.co/guide/jp/index.html)
・Kibana関連(https://www.elastic.co/products/kibana)

要件

esに登録されたデータやindexに対して、バックアップを取った時点に復元すること。

先に結論

index.kibana(Kibana自身の仕組み用)は復元できなくて、その以外のindexは指定して復元できる。
↓↓↓ AWSサポートセンターに確認した結果:
index.kibana(Kibana自身の仕組み用)は復元もできる。

通常の流れ

① _snapshot apiでsnapshotを作成
② _restore apiでindexを復元

公式参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html#modules-snapshots

実際にやりながら問題点を説明

※Kibana consoleで操作、検証

初期状態

GET /_cat/indices/*?v


.kibanaのindexはデフォルトとして存在する。

health status index   uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   .kibana abcdefghijklmnopqrstu   1   1          1            0      3.6kb          3.6kb

データやindexを投入後(投入操作は省略)

GET /_cat/indices/*?v

投入されたindexのtest-index-1、test-index-2が存在する。

health status index                   uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   .kibana                 abcdefghijklmnopqrstu   1   1          1            0      3.6kb          3.6kb
yellow open   test-index-1            klmnopqrstuabcdefghij   5   1          1            0      9.3kb          9.3kb
yellow open   test-index-2            pqrstuabcdefghijklmno   5   1          5            0      9.4kb          9.4kb

現時点(index三つある)のsnapshotを作成(snapshot repositoryの作成は省略)

PUT _snapshot/es-backup-repo/my-snapshot

作成されたsnapshotの様子を見る

GET /_snapshot/es-backup-repo/_all


snapshotは全indexが入ってる

...省略...
"indices": [
        ".kibana",
        "test-index-1",
        "test-index-2"
      ],
...省略...

現在すべてのindexを削除して復元する

DELETE *


削除後

health status index   uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   .kibana jklmnopqrstuabcdefghi   1   1          1            0      3.6kb          3.6kb

えええええーーーー
初期に存在する.kibanaは削除されていない

そのまま復元なら

POST /_snapshot/es-backup-repo/my-snapshot/_restore


.kibanaが存在するので、復元ができない。

{
  "error": {
    "root_cause": [
      {
        "type": "snapshot_restore_exception",
        "reason": "[es-backup-repo:my-snapshot/CAAUJ6GJSPCtkOuwSiGDnw] cannot restore index [.kibana] because it's open"
      }
    ],
    "type": "snapshot_restore_exception",
    "reason": "[es-backup-repo:my-snapshot/CAAUJ6GJSPCtkOuwSiGDnw] cannot restore index [.kibana] because it's open"
  },
  "status": 500
}

解決案

.kibana以外のindexを復元することなら

indesを指定すればよい

POST /_snapshot/es-backup-repo/my-snapshot/_restore
{
  "indices": "test-index-*"
}

確認

GET /_cat/indices/*?v

復元できた

health status index                   uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   .kibana                 jklmnopqrstuabcdefghi   1   1          1            0      3.6kb          3.6kb
yellow open   test-index-1            fghijklmnopqrstuabcde   5   1          1            0      9.3kb          9.3kb
yellow open   test-index-2            mnopqrstuabcdefghijkl   5   1          5            0      9.4kb          9.4kb

.kibanaを復元しようにはどうする???

aws公式案:https://aws.amazon.com/jp/premiumsupport/knowledge-center/elasticsearch-kibana-error/

上記の超最近(公開日: 2018 年 08 月 31 日)の案は、やってみて、残念でだめだった。
原因は、既存のindex[.kibana]がrenameしても、reindexしても、削除できないこと。
(削除された一瞬にまた自動的.kibanaを作り直すこと。)

追記:

AWSサポートセンターへ問い合わせて、下記のような結果でした。
【2には、reindex API は dest の index が open の状態で存在していたとしても source のドキュメントを dest のドキュメントに移行可能であること、この操作によりスナップショットからリストアされた restored_.kibana インデックスの内容を .kibana インデックスに復元できるもの】って、
renameされたものindexは外見(uid)から見れば何も変わってないですが、中身もちゃんと復旧されたということですよね。

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1