例外により Kibana サービスが再起動されると、サービスの .kibana_{num} インデックスはリセットされます。この場合、データを復元するにはインデックスを復元する必要があります。.kibana_{num} の {num} は変数です。たとえば、.kibana_1 インデックスと .kibana_2 インデックスが存在する場合があります。この Topic では、スナップショットを使用するか、reindex API を呼び出して .kibana_{num} インデックスを復元する方法について説明します。この Topic では、.kibana_1 インデックスを使用します。
背景情報
.kibana_{num} インデックスは、ダッシュボードの構成やインデックスパターンなど、Kibana の構成情報を格納するために使用されます。デフォルトでは、Kibana はエイリアス .kibana を基に .kibana_{num} インデックスからデータを読み取ります。複数の .kibana_{num} インデックスが存在する場合、そのうち 1 つのみがエイリアス .kibana を使用します。
一部の複雑なビジネスシナリオでは、.kibana_{num} インデックスに格納された Kibana 構成情報がリセットされる場合があります。たとえば、.kibana_1 インデックスの構造が破損している場合や、Kibana サービスにアクセスする際にエラーが発生した場合、.kibana_1 インデックスを削除して Kibana サービスを再起動する必要があります。スケジューリングタスクで構成例外が発生した場合、.kibana_1 インデックスが削除され、Kibana サービスが再起動される場合があります。これらのシナリオでは、Kibana サービスが再起動された後、.kibana_task_manager_1 が自動的に、エイリアス .kibana を使用する新しい .kibana_1 インデックスを生成し、新しい .kibana_1 インデックス内で Kibana 構成情報がリセットされます。この情報には、インデックスパターン、ダッシュボードの構成、およびユーザーのロールが含まれます。
.kibana_1 インデックスは、以下のいずれかの方法で復元できます:
スナップショットから直接復元します。
スナップショットのデータをバックアップインデックスに復元し、reindex API を使用してバックアップインデックスから .kibana_1 インデックスへデータをコピーします。
インデックスパターンまたはユーザーのロールを手動で再作成します。
前提条件
Elasticsearch クラスターで自動スナップショット機能が有効化されているか、システムインデックスを手動でスナップショットにバックアップ済みである必要があります。.kibana_1 インデックスは、スナップショット内において有効な構造を持つ必要があります。
クラスター内に .kibana エイリアスが存在し、それが .kibana_1 インデックスを指している必要があります。.kibana_1 インデックスが存在しない場合は、Kibana サービスを再起動して .kibana_1 インデックスを初期化・生成してください。
操作手順
スナップショットからの復元
Elasticsearch クラスターの Kibana コンソール にログインし、Kibana のホームページに移動します。
左側のナビゲーションメニューで、Dev tools をクリックします。
表示されたページの Console タブで、関連リポジトリに保存されている自動スナップショットに関する情報を照会するため、以下のコマンドを実行します:
GET _cat/snapshots/aliyun_auto_snapshot?valiyun_auto_snapshot:スナップショットを格納するリポジトリの名前です。Alibaba Cloud Elasticsearch の自動スナップショット機能を使用してクラスターデータを定期的にバックアップする場合、リポジトリ名は固定で aliyun_auto_snapshot となります。手動バックアップを使用する場合は、aliyun_auto_snapshot をご自身で指定したリポジトリ名に置き換えてください。
正常に実行された場合、リポジトリ内のすべてのスナップショットに関する詳細(id や status など)が返されます。
説明Kibana の例外発生前に取得された最新のスナップショットの id を記録してください。後続の手順で必要になります。

スナップショットの復元を実行する前に、バックアップからスナップショット情報を取得し、クラスター内に .kibana_1 という名前のインデックスが存在するかどうかを確認します。
GET _snapshot/aliyun_auto_snapshot/<yourSnapshotId><yourSnapshotId>:Kibana の例外発生前に取得された最新のスナップショットの id です。ステップ 3 で記録した id を入力してください。たとえば、es-cn-m7r23wodb006n****_20220303020235 のように入力します。
正常に実行された場合、以下の図に示す結果が返されます。.kibana_1 に関連するインデックスが結果に含まれている場合のみ、次の手順に進むことができます。

以下のコマンドを実行して、.kibana_1 インデックスのステータスを「クローズ」に設定します:
重要.kibana_1 インデックスをクローズして Kibana を再起動した後に Kibana コンソールにログインできない場合は、cURL コマンドを使用して .kibana_1 インデックスを復元してください。詳細については、「よくある質問」をご参照ください。
POST /.kibana_1/_close正常に実行された場合、以下の結果が返されます。
{ "acknowledged" : true, "shards_acknowledged" : true, "indices" : { ".kibana_1" : { "closed" : true } } }以下のコマンドを実行して、スナップショットから .kibana_1 インデックスを復元します:
POST _snapshot/aliyun_auto_snapshot/<yourSnapshotId>/_restore { "indices": ".kibana_1", "rename_pattern": ".kibana_1", "rename_replacement": ".kibana_1" }パラメーター
説明
<yourSnapshotId>
自動バックアップ用のスナップショットの ID: ステップ 3 で取得した ID を入力します。
indices
復元対象のインデックス名です。
rename_pattern
(任意)復元対象のインデックス名に一致させる正規表現です。
rename_replacement
(任意)一致したインデックスの名前を変更するルールです。
正常に実行された場合、
"accepted" : trueが返されます。重要Elasticsearch クラスターのバージョンが V7.10 以外の場合、スナップショットから .kibana_1 インデックスを復元する際に、
index_closed_exception index=".kibana_1"のようなエラーが発生することがあります。トラブルシューティングについては、「よくある質問」をご参照ください。復元結果を確認します。
Kibana のインデックスパターンが復元されたかどうかを検証するため、以下の手順を実行します。復元されていれば、スナップショットからの復元は成功しています。
Kibana コンソールの左上隅にある
アイコンをクリックします。左側のナビゲーションウィンドウで、 を選択します。
Kibana セクションで、Index Patterns をクリックします。
Index patterns ページで、kibana_ で始まる名前のパターンをクリックして、データが復元されたかどうかを確認します。

reindex を使用した復元
最新のスナップショットの詳細を照会し、Elasticsearch クラスター内に .kibana_1 インデックスが存在するかどうかを確認します。
手順については、「スナップショットを用いた .kibana_1 インデックスの復元」のステップ 1~4 をご参照ください。
説明クラスター内に .kibana_1 に関連するインデックスが存在する場合のみ、次の手順に進むことができます。
以下のコマンドを実行して、スナップショット内の .kibana_1 インデックスをバックアップインデックスに復元します。本例では、バックアップインデックス名を kibana123 とします。
POST _snapshot/aliyun_auto_snapshot/<yourSnapshotId>/_restore { "indices": ".kibana_1", "rename_pattern": ".kibana_1", "rename_replacement": "kibana123" }パラメーター
説明
<yourSnapshotId>
自動バックアップスナップショットの ID:ステップ 1 で取得した ID を入力します。
indices
復元対象のインデックス名です。
rename_pattern
(任意)復元対象のインデックス名に一致させる正規表現です。
rename_replacement
バックアップインデックスの名前です。
正常に実行された場合、
"accepted" : trueが返されます。reindex API を呼び出して、バックアップインデックス内のデータを現在の .kibana_1 インデックスに再インデックス化します。
POST _reindex { "source": { "index": "kibana123" }, "dest": { "index": ".kibana_1" } }正常に実行された場合、以下の結果が返されます。
{ "took" : 731, "timed_out" : false, "total" : 33, "updated" : 33, "created" : 0, "deleted" : 0, "batches" : 1, "version_conflicts" : 0, "noops" : 0, "retries" : { "bulk" : 0, "search" : 0 }, "throttled_millis" : 0, "requests_per_second" : -1.0, "throttled_until_millis" : 0, "failures" : [ ] }バックアップインデックスを削除します。本例では、バックアップインデックス名を kibana123 とします。
DELETE kibana123正常に実行された場合、
"accepted" : trueが返されます。復元結果を確認します。
Kibana のインデックスパターンが復元されたかどうかを検証します。復元されていれば、復元は成功しています。「スナップショットを用いた .kibana_1 インデックスの復元」のステップ 7 をご参照ください。

