同一リージョン・同一 Alibaba Cloud アカウント下で、Elasticsearch クラスターの自動スナップショットから別のクラスターへデータを復元するには、共有 OSS リポジトリを設定します。この機能により、送信先クラスターがソースクラスターのスナップショットリポジトリを参照できます。その後、Kibana Dev Tools でコマンドを実行してデータを復元します。
共有 OSS リポジトリの参照を追加
送信先クラスターは、同じバージョンまたはそれより古いバージョンの Elasticsearch を実行しているソースクラスターのリポジトリのみを参照できます。より新しいバージョンの Elasticsearch を実行しているソースクラスターのリポジトリを参照することはサポートされていません。異なるバージョン間での復元では、データ形式の互換性問題により復元に失敗する場合があります。たとえば、Elasticsearch 6.7.0 はバージョン 5.5.3 に存在するマルチタイプインデックスをサポートしないため、復元に問題が生じる可能性があります。ソースクラスターおよび送信先クラスターの両方が Commercial Edition 6.7.0 の場合、両方のクラスターが最新のカーネルバージョンを実行しているか、または送信先クラスターのカーネルバージョンがソースクラスターのものより新しいことを確認してください。
Alibaba Cloud Elasticsearch コンソールにログインします。
左側のナビゲーションウィンドウで、Elasticsearch クラスター をクリックします。
上部のメニューバーで、リソースグループおよびリージョンを選択します。
Elasticsearch クラスター ページで、送信先クラスターの ID をクリックします。
左側のナビゲーションウィンドウで、スナップショット をクリックします。
共有 OSS リポジトリ セクションで、今すぐ作成 をクリックします。初めてのリポジトリ参照を追加する場合以外は、共有リポジトリを作成 をクリックします。
共有リポジトリを作成 ページで、ソースクラスターを選択します。ソースクラスターは、以下の条件を満たす必要があります:送信先クラスターと同じリージョンにあり、同一の Alibaba Cloud アカウントに属し、送信先クラスターと同等またはそれより古いバージョンの Elasticsearch を実行していること。
OK をクリックします。参照が作成されると、ソースクラスターおよび参照されたリポジトリのステータスがページ上に表示されます。
リポジトリ参照を追加した後、送信先クラスターは一時的に 有効化中 状態になる場合があります。この期間中は、Kibana のホワイトリストを含むクラスター構成を変更できません。他の操作を実行する前に、クラスターのステータスが 正常 に戻るまでお待ちください。
リポジトリ一覧は対応するクラスターから取得されます。クラスターが構成変更中、異常状態、または高負荷状態の場合、そのリポジトリにアクセスできないことがあります。このような場合は、ソースクラスターの Kibana コンソールで
GET _snapshotコマンドを実行し、すべてのリポジトリのアドレスを取得してください。
インデックスデータの復元
共有 OSS リポジトリの設定は単なる参照の作成であり、データの自動復元は行われません。送信先クラスターの Kibana コンソールで、手動で復元コマンドを実行する必要があります。詳細については、「Kibana を使用した Elasticsearch クラスターへの接続」をご参照ください。
Kibana コンソールの左側ナビゲーションウィンドウで、Dev Tools をクリックします。
参照されたリポジトリ内のすべてのスナップショットに関する情報を取得します。
以下の例では、
aliyun_snapshot_from_es-cn-aが参照されたリポジトリの名称です。実際のリポジトリ名に置き換えてください。GET /_cat/snapshots/aliyun_snapshot_from_es-cn-a?vこのリクエストは、指定されたリポジトリ内のすべてのスナップショットに関する情報を返します。
前ステップで取得したスナップショット ID をもとに、以下のコマンドを実行して指定のインデックスを復元します。
指定するインデックスが送信先クラスターで既にクローズされているか、存在しないことを確認してください。そうでない場合、復元時にインデックス名の競合エラーが発生します。
.で始まるシステムインデックスを復元すると、Kibana へのアクセスが失敗する場合があります。システムインデックスは復元しないでください。単一インデックスの復元
POST _snapshot/aliyun_snapshot_from_es-cn-a/<snapshot_id>/_restore {"indices": "file-2019-08-25"}複数インデックスの復元
POST _snapshot/aliyun_snapshot_from_es-cn-a/<snapshot_id>/_restore {"indices": "kibana_sample_data_ecommerce,kibana_sample_data_logs"}すべてのインデックス(システムインデックスを除く)の復元
POST _snapshot/aliyun_snapshot_from_es-cn-a/<snapshot_id>/_restore {"indices":"*,-.monitoring*,-.security*,-.kibana*,-.apm*,-.ds-ilm-history-*,-.tasks","ignore_unavailable":"true"}上記の除外パターンには、一般的なシステムインデックスが含まれています。クラスターのバージョンによっては、その他のシステムインデックスが存在する場合があります。ご使用のクラスターに存在するシステムインデックスに応じて、除外リストを調整する必要があります。以下のコマンドを実行して、
.で始まるシステムインデックスの一覧を取得し、それに基づいて除外リストを更新してください:GET _cat/indices/.*?v