ソース Elasticsearch クラスタ内のユーザーに割り当てられたロールなどのユーザー情報、または視覚化情報をデスティネーション Elasticsearch クラスタで再利用する場合、手動スナップショットを作成して情報をバックアップし、手動スナップショットからデスティネーション Elasticsearch クラスタに情報を復元できます。
前提条件
Object Storage Service (OSS) がアクティブ化されています。ストレージクラスがStandard の OSS バケットが作成されています。詳細については、OSS をアクティブ化する および バケットを作成する をご参照ください。
OSS バケットが存在するリージョンに 2 つの Alibaba Cloud Elasticsearch クラスタが作成されています。1 つの Elasticsearch クラスタはソースクラスタとして使用され、もう 1 つはデスティネーションクラスタとして使用されます。スナップショットからのデータ復元における異なるバージョンの Elasticsearch クラスタ間の互換性については、インデックスの互換性 をご参照ください。
説明Elasticsearch V8.X クラスタ用に作成されたスナップショットからデータを復元する操作は、Elasticsearch V7.X クラスタ用に作成されたスナップショットからデータを復元する操作とは異なります。このトピックでは、Elasticsearch V7.10 クラスタ用に作成されたスナップショットから別の Elasticsearch V7.10 クラスタにデータを復元する方法と、Elasticsearch V8.5 クラスタ用に作成されたスナップショットから別の Elasticsearch V8.5 クラスタにデータを復元する方法について説明します。
スナップショットからのデータ復元における異なるバージョンの Elasticsearch クラスタ間の互換性については、インデックスの互換性 をご参照ください。
注意事項
このトピックで提供されているコードは、Elasticsearch クラスタの Kibana コンソールで実行できます。
V8.0 以降の Elasticsearch クラスタのシステムインデックスとシステムデータストリームをバックアップおよび復元するには、_features API のみを使用できます。 _features API の詳細については、スナップショットと復元 をご参照ください。
ソースクラスタのユーザーに割り当てられたロールを含むユーザー情報をデスティネーションクラスタで再利用する
手順 1:環境を準備する
ソース Elasticsearch クラスタの Kibana コンソールにログオンします。詳細については、Kibana コンソールにログオンする をご参照ください。
ソース Elasticsearch クラスタに
cj_test_roleという名前のロールとkaraという名前のユーザーを作成し、cj_test_roleロールを kara ユーザーに割り当てます。詳細については、Elasticsearch X-Pack が提供する RBAC メカニズムを使用してアクセス制御を実装する をご参照ください。
手順 2:ソース Elasticsearch クラスタのデータをバックアップするためのスナップショットを作成する
ソース Elasticsearch クラスタの Kibana コンソールにログオンします。詳細については、Kibana コンソールにログオンする をご参照ください。
ソース Elasticsearch クラスタに
my_backupという名前のリポジトリを作成します。クラウド内のクラスタのリポジトリを作成します。
PUT _snapshot/my_backup/ { "type": "oss", "settings": { "endpoint": "http://oss-cn-hangzhou-internal.aliyuncs.com", // OSS バケットの内部エンドポイント "access_key_id": "xxxx", // アカウントの AccessKey ID "secret_access_key": "xxxxxx", // アカウントの AccessKey シークレット "bucket": "xxxxxx", // OSS バケット名 "compress": true, // スナップショットのデータ圧縮機能を有効にするかどうか "chunk_size": "500mb", // 大量のデータを OSS バケットにアップロードする場合、データを複数のパートに分割してアップロードできます。この場合、このパラメータを使用して各パートのサイズを設定できます。パートのサイズがこのパラメータの値に達すると、超過データは別のパートに配信されます。 "base_path": "snapshot/" // リポジトリの開始場所。デフォルト値はルートディレクトリです。特定のスナップショットが格納されるディレクトリを指定できます。例:snapshot/myindex/。 } }セルフマネージド V8.X クラスタのリポジトリを作成します。この場合、クラスタに elasticsearch-repository-oss プラグインをインストールする必要があります。詳細については、elasticsearch-repository-oss プラグインをインストールする をご参照ください。
説明プラグインの詳細については、elasticsearch-repository-oss をご参照ください。
PUT /_snapshot/my_backup { "type": "oss", "settings": { "oss.client.endpoint": "oss-cn-shanghai.aliyuncs.com", // OSS バケットのエンドポイント "oss.client.access_key_id": "xxx", // アカウントの AccessKey ID "oss.client.secret_access_key": "xxx", // アカウントの AccessKey シークレット "oss.client.bucket": "xxxxxx", // OSS バケット名 "oss.client.base_path":"snapshot/", // リポジトリの開始場所。デフォルト値はルートディレクトリです。特定のスナップショットが格納されるディレクトリを指定できます。例:snapshot/myindex/。 "oss.client.compress": true // スナップショットのデータ圧縮機能を有効にするかどうか。インデックスのマッピングや設定などのインデックスメタデータにのみ適用されます。 } }
パラメータ
説明
endpoint
OSS バケットの内部エンドポイント。エンドポイントの取得方法については、リージョンとエンドポイント をご参照ください。
access_key_id
アカウントの AccessKey ID。 AccessKey ID の取得方法については、AccessKey ペアを取得する をご参照ください。
secret_access_key
アカウントの AccessKey シークレット。 AccessKey シークレットの取得方法については、AccessKey ペアを取得する をご参照ください。
bucket
OSS バケットの名前。名前の取得方法については、バケットを作成する をご参照ください。
compress
スナップショットのデータ圧縮機能を有効にするかどうかを指定します。有効な値:
true:スナップショットのデータ圧縮機能を有効にします。この機能は、インデックスのマッピングや設定などのインデックスメタデータにのみ適用されます。
false:スナップショットのデータ圧縮機能を無効にします。デフォルト値は false です。
chunk_size
OSS バケットに大量のデータをアップロードする場合、データを複数のパートに分割してアップロードできます。この場合、このパラメータを使用して各パートのサイズを設定できます。パートのサイズがこのパラメータの値に達すると、超過データは別のパートに配信されます。
base_path
リポジトリの開始場所。デフォルト値はルートディレクトリです。特定のスナップショットが格納されるディレクトリを指定できます。例:snapshot/myindex/。
ソース Elasticsearch クラスタのスナップショットを作成します。
ソース Elasticsearch クラスタが V7.10 の場合、次のコマンドを実行して、クラスタの
snapshot_1という名前のスナップショットを作成します。説明Elasticsearch V7.10 クラスタのユーザーに割り当てられたロールなどのユーザー情報は、
.kibana*および.security*システムインデックスを使用して管理されます。Elasticsearch V7.10 クラスタのスナップショットを作成するために使用されるコマンドのパラメータについては、スナップショット API の復元 をご参照ください。
PUT _snapshot/my_backup/snapshot_1 { // .kibana* および .security* システムインデックスをバックアップします。 "indices": ".kibana*,.security*", "ignore_unavailable": true, "include_global_state": true }ソース Elasticsearch クラスタが V8.5 の場合、次のコマンドを実行して、クラスタ内のユーザーに割り当てられたロールなどのユーザー情報を格納するインデックスの
snapshot_1という名前のスナップショットを作成します。説明Elasticsearch V8.5 クラスタのスナップショットを作成するために使用されるコマンドのパラメータについては、スナップショット API の作成 をご参照ください。
PUT _snapshot/my_backup/snapshot_1 { "indices": "-*", // システムインデックスとシステムデータストリームをバックアップします。 "ignore_unavailable": true, "include_global_state": true, "feature_states": [ "security" // ユーザー情報を含む security システムインデックスをバックアップします。 ] }
スナップショットが正常に作成されたかどうかを確認します。たとえば、次のコマンドを実行して、
my_backupリポジトリ内のsnapshot_1スナップショットの詳細をクエリできます。GET _snapshot/my_backup/snapshot_1
手順 3:スナップショットからデータを復元する
デスティネーション Elasticsearch クラスタの Kibana コンソールにログオンします。詳細については、Kibana コンソールにログオンする をご参照ください。
デスティネーション Elasticsearch クラスタに
my_restoreという名前のリポジトリを作成します。PUT _snapshot/my_restore { "type": "oss", "settings": { "endpoint": "http://oss-cn-hangzhou-internal.aliyuncs.com", // OSS バケットの内部エンドポイント "access_key_id": "[your_access_key_id]", // アカウントの AccessKey ID "secret_access_key": "[your_secret_access_key]", // アカウントの AccessKey シークレット "bucket": "[your_bucket_name]", // OSS バケット名 "compress": true, // スナップショットのデータ圧縮機能を有効にするかどうか "chunk_size": "500mb", // 大量のデータを OSS バケットにアップロードする場合、データを複数のパートに分割してアップロードできます。この場合、このパラメータを使用して各パートのサイズを設定できます。パートのサイズがこのパラメータの値に達すると、超過データは別のパートに配信されます。 "base_path": "snapshot/" // リポジトリの開始場所。デフォルト値はルートディレクトリです。特定のスナップショットが格納されるディレクトリを指定できます。例:snapshot/myindex/。 } }ソース Elasticsearch クラスタ用に作成されたスナップショットからデスティネーション Elasticsearch クラスタにデータを復元します。
ソース Elasticsearch クラスタが V7.10 の場合、次の操作を実行して、クラスタ用に作成されたスナップショットからデータを復元します。
説明V7.10 以前の Elasticsearch クラスタ用に作成されたスナップショットからデスティネーション Elasticsearch クラスタにデータを復元する場合、デスティネーション Elasticsearch クラスタの
.kibana*および.security*システムインデックスを無効にする必要があります。スナップショットからデータが復元されたら、できるだけ早くこれらのインデックスを有効にする必要があります。システムインデックスを無効にすると、Elasticsearch クラスタの機能が使用できなくなるか、制限される可能性があります。たとえば、
.kibana*システムインデックスを無効にすると Kibana コンソールが使用できなくなり、.security*システムインデックスを無効にすると Elasticsearch クラスタのデータセキュリティに影響を与える可能性があります。これらのシステムインデックスのデータを事前にバックアップすることをお勧めします。こうすることで、必要に応じてデータを復元できます。
デスティネーション Elasticsearch クラスタでこれらのインデックスを無効にするのは、オフピーク時またはクラスタがサービスを提供していないときに行うことをお勧めします。
デスティネーション Elasticsearch クラスタの Kibana コンソールでこれらのインデックスを無効にできない場合は、ターミナルを使用してこれらのインデックスを無効にすることをお勧めします。詳細については、Elasticsearch クラスタを管理するために使用できる Curl コマンド をご参照ください。
デスティネーション Elasticsearch クラスタの
.kibana*および.security*システムインデックスを無効にします。POST /<index name>/_close // index name は、閉じたいインデックスの名前に置き換えます。snapshot_1 スナップショットからデスティネーション Elasticsearch クラスタにデータを復元します。
POST /_snapshot/my_restore/snapshot_1/_restore { "indices": ".kibana*,.security*", "ignore_unavailable": true, "include_global_state": false }デスティネーション Elasticsearch クラスタの
.kibana*および.security*システムインデックスを有効にします。POST /<index name>/_open // index name は、開きたいインデックスの名前に置き換えます。
ソース Elasticsearch クラスタが V8.5 の場合、デスティネーション Elasticsearch クラスタの Kibana コンソールで次のコマンドを実行して、
snapshot_1スナップショットからデスティネーション Elasticsearch クラスタにデータを復元します。POST _snapshot/my_restore/snapshot_1/_restore { "feature_states": [ "security" ], // ユーザー情報を含む security システムインデックスを復元します。 "include_global_state": false, "indices": "-*" // システムインデックスとシステムデータストリームを復元します。 }
デスティネーション Elasticsearch クラスタでユーザー情報が再利用されているかどうかを確認します。
デスティネーション Elasticsearch クラスタの Kibana コンソールの左上隅にある
アイコンをクリックします。左側のナビゲーションペインで、 を選択します。左側のナビゲーションペインで、[ユーザー] をクリックします。 [ユーザー] ページで、
cj_test_roleロールが割り当てられている kara ユーザーが存在するかどうかを確認します。ユーザーが存在する場合、karaユーザーの情報はデスティネーション Elasticsearch クラスタで再利用されます。
ソース Elasticsearch クラスタの視覚化をデスティネーション Elasticsearch クラスタで再利用する
手順 1:環境を準備する
ソース Elasticsearch クラスタの Kibana コンソールにログオンします。詳細については、Kibana コンソールにログオンする をご参照ください。
サンプルデータを追加します。
説明この例では、サンプルデータは Elasticsearch V8.5 クラスタに追加されます。 Elasticsearch クラスタにサンプルデータを追加する操作は、Elasticsearch のバージョンによって異なる場合があります。 Kibana コンソールで必要な操作を実行できます。
Kibana コンソールのホームページで、[サンプルデータを試す] セクションの [統合を追加して開始する] をクリックします。
表示されるページの [サンプルデータ] タブで、[その他のサンプルデータセット] をクリックします。
[サンプルフライトデータ] カードの [データを追加] をクリックします。
[データを追加] が [データを表示] に変わると、データセットが追加されます。データセットが追加されると、Kibana は自動的に関連する視覚化を作成します。

Kibana コンソールの左上隅にある
アイコンをクリックします。左側のナビゲーションペインで、 を選択して、[Flights] Destination Weather や [Flights] Delays & Cancellations などの視覚化を表示します。
手順 2:ソース Elasticsearch クラスタのデータをバックアップするためのスナップショットを作成する
ソース Elasticsearch クラスタの Kibana コンソールにログオンします。詳細については、Kibana コンソールにログオンする をご参照ください。
ソース Elasticsearch クラスタに
my_backupという名前のリポジトリを作成します。クラウド内のクラスタのリポジトリを作成します。
PUT _snapshot/my_backup/ { "type": "oss", "settings": { "endpoint": "http://oss-cn-hangzhou-internal.aliyuncs.com", // OSS バケットの内部エンドポイント "access_key_id": "xxxx", // アカウントの AccessKey ID "secret_access_key": "xxxxxx", // アカウントの AccessKey シークレット "bucket": "xxxxxx", // OSS バケット名 "compress": true, // スナップショットのデータ圧縮機能を有効にするかどうか "chunk_size": "500mb", // 大量のデータを OSS バケットにアップロードする場合、データを複数のパートに分割してアップロードできます。この場合、このパラメータを使用して各パートのサイズを設定できます。パートのサイズがこのパラメータの値に達すると、超過データは別のパートに配信されます。 "base_path": "snapshot/" // リポジトリの開始場所。デフォルト値はルートディレクトリです。特定のスナップショットが格納されるディレクトリを指定できます。例:snapshot/myindex/。 } }セルフマネージド V8.X クラスタのリポジトリを作成します。この場合、クラスタに elasticsearch-repository-oss プラグインをインストールする必要があります。詳細については、elasticsearch-repository-oss プラグインをインストールする をご参照ください。
説明プラグインの詳細については、elasticsearch-repository-oss をご参照ください。
PUT /_snapshot/my_backup { "type": "oss", "settings": { "oss.client.endpoint": "oss-cn-shanghai.aliyuncs.com", // OSS バケットのエンドポイント "oss.client.access_key_id": "xxx", // アカウントの AccessKey ID "oss.client.secret_access_key": "xxx", // アカウントの AccessKey シークレット "oss.client.bucket": "xxxxxx", // OSS バケット名 "oss.client.base_path":"snapshot/", // リポジトリの開始場所。デフォルト値はルートディレクトリです。特定のスナップショットが格納されるディレクトリを指定できます。例:snapshot/myindex/。 "oss.client.compress": true // スナップショットのデータ圧縮機能を有効にするかどうか。インデックスのマッピングや設定などのインデックスメタデータにのみ適用されます。 } }
パラメータ
説明
endpoint
OSS バケットの内部エンドポイント。エンドポイントの取得方法については、リージョンとエンドポイント をご参照ください。
access_key_id
アカウントの AccessKey ID。 AccessKey ID の取得方法については、AccessKey ペアを取得する をご参照ください。
secret_access_key
アカウントの AccessKey シークレット。 AccessKey シークレットの取得方法については、AccessKey ペアを取得するご参照ください。
bucket
OSS バケットの名前。名前の取得方法については、バケットを作成する をご参照ください。
compress
スナップショットのデータ圧縮機能を有効にするかどうかを指定します。有効な値:
true:スナップショットのデータ圧縮機能を有効にします。この機能は、インデックスのマッピングや設定などのインデックスメタデータにのみ適用されます。
false:スナップショットのデータ圧縮機能を無効にします。デフォルト値は false です。
chunk_size
OSS バケットに大量のデータをアップロードする場合、データを複数のパートに分割してアップロードできます。この場合、このパラメータを使用して各パートのサイズを設定できます。パートのサイズがこのパラメータの値に達すると、超過データは別のパートに配信されます。
base_path
リポジトリの開始場所。デフォルト値はルートディレクトリです。特定のスナップショットが格納されるディレクトリを指定できます。例:snapshot/myindex/。
ソース Elasticsearch クラスタのスナップショットを作成します。
ソース Elasticsearch クラスタが V7.10 の場合、次のコマンドを実行して、クラスタに
snapshot_2という名前のスナップショットを作成します。説明Elasticsearch V7.10 クラスタのスナップショットを作成するために使用されるコマンドのパラメータについては、スナップショット API の復元 をご参照ください。
PUT _snapshot/my_backup/snapshot_2 { "indices": ".kibana*,.security*", // .kibana* および .security* システムインデックスをバックアップします。視覚化は .kibana インデックスに保存されます。 "ignore_unavailable": true, "include_global_state": true }ソース Elasticsearch クラスタが V8.5 の場合、次のコマンドを実行して、クラスタ内の視覚化を格納するインデックスの
snapshot_2という名前のスナップショットを作成します。説明Elasticsearch V8.5 クラスタのスナップショットを作成するために使用されるコマンドのパラメータについては、スナップショット API の作成 をご参照ください。
PUT _snapshot/my_backup/snapshot_2 { "indices": "-*", // システムインデックスとシステムデータストリームをバックアップします。 "ignore_unavailable": true, "include_global_state": true, "feature_states": [ "security","kibana" // security システムインデックスと kibana システムインデックスをバックアップします。視覚化は kibana システムインデックスに保存されます。 ] }
スナップショットが正常に作成されたかどうかを確認します。たとえば、次のコマンドを実行して、
my_backupリポジトリ内のsnapshot_2スナップショットの詳細をクエリできます。GET _snapshot/my_backup/snapshot_2
手順 3:スナップショットからデータを復元する
デスティネーション Elasticsearch クラスタの Kibana コンソールにログオンします。詳細については、Kibana コンソールにログオンする をご参照ください。
デスティネーション Elasticsearch クラスタに
my_restoreという名前のリポジトリを作成します。PUT _snapshot/my_restore { "type": "oss", "settings": { "endpoint": "http://oss-cn-hangzhou-internal.aliyuncs.com", // OSS バケットの内部エンドポイント "access_key_id": "[your_access_key_id]", // アカウントの AccessKey ID "secret_access_key": "[your_secret_access_key]", // アカウントの AccessKey シークレット "bucket": "[your_bucket_name]", // OSS バケット名 "compress": true, // スナップショットのデータ圧縮機能を有効にするかどうか "chunk_size": "500mb", // 大量のデータを OSS バケットにアップロードする場合、データを複数のパートに分割してアップロードできます。この場合、このパラメータを使用して各パートのサイズを設定できます。パートのサイズがこのパラメータの値に達すると、超過データは別のパートに配信されます。 "base_path": "snapshot/" // リポジトリの開始場所。デフォルト値はルートディレクトリです。特定のスナップショットが格納されるディレクトリを指定できます。例:snapshot/myindex/。 } }ソース Elasticsearch クラスタ用に作成されたスナップショットからデスティネーション Elasticsearch クラスタにデータを復元します。
ソース Elasticsearch クラスタが V7.10 の場合、次の操作を実行して、クラスタ用に作成されたスナップショットからデータを復元します。
説明V7.10 以前の Elasticsearch クラスタ用に作成されたスナップショットからデスティネーション Elasticsearch クラスタにデータを復元する場合、デスティネーション Elasticsearch クラスタの
.kibana*および.security*システムインデックスを無効にする必要があります。スナップショットからデータが復元されたら、できるだけ早くこれらのインデックスを有効にする必要があります。システムインデックスを無効にすると、Elasticsearch クラスタの機能が使用できなくなるか、制限される可能性があります。たとえば、
.kibana*システムインデックスを無効にすると Kibana コンソールが使用できなくなり、.security*システムインデックスを無効にすると Elasticsearch クラスタのデータセキュリティに影響を与える可能性があります。これらのシステムインデックスのデータを事前にバックアップすることをお勧めします。こうすることで、必要に応じてデータを復元できます。
デスティネーション Elasticsearch クラスタでこれらのインデックスを無効にするのは、オフピーク時またはクラスタがサービスを提供していないときに行うことをお勧めします。
デスティネーション Elasticsearch クラスタの Kibana コンソールでこれらのインデックスを無効にできない場合は、ターミナルを使用してこれらのインデックスを無効にすることをお勧めします。詳細については、Elasticsearch クラスタを管理するために使用できる Curl コマンド をご参照ください。
デスティネーション Elasticsearch クラスタの
.kibana*および.security*システムインデックスを無効にします。POST /<index name>/_close // index name は、閉じたいインデックスの名前に置き換えます。snapshot_2 スナップショットからデスティネーション Elasticsearch クラスタにデータを復元します。
POST /_snapshot/my_restore/snapshot_2/_restore { "indices": ".kibana*,.security*", "ignore_unavailable": true, "include_global_state": false }デスティネーション Elasticsearch クラスタの
.kibana*および.security*システムインデックスを有効にします。POST /<index name>/_open // index name は、開きたいインデックスの名前に置き換えます。
ソース Elasticsearch クラスタが V8.5 の場合、デスティネーション Elasticsearch クラスタの Kibana コンソールで次のコマンドを実行して、
snapshot_2スナップショットからデスティネーション Elasticsearch クラスタにデータを復元します。POST _snapshot/my_restore/snapshot_2/_restore { "feature_states": [ "security","kibana" ], // security システムインデックスと kibana システムインデックスを復元します。視覚化は kibana システムインデックスに保存されます。 "include_global_state": false, "indices": "-*" // システムインデックスとシステムデータストリームを復元します。 }
視覚化がデスティネーション Elasticsearch クラスタで再利用されているかどうかを確認します。
デスティネーション Elasticsearch クラスタの Kibana コンソールの左上隅にある
アイコンをクリックします。左側のナビゲーションペインで、 を選択します。 [視覚化ライブラリ] ページで、視覚化がデスティネーション Elasticsearch クラスタで再利用されているかどうかを確認します。