Alibaba Cloud Elasticsearch の自動バックアップを有効にすると、システムは設定した間隔でインデックスデータをバックアップします。これらのバックアップを使用して、誤ったデータ削除やアプリケーションロジックの誤りから復旧できます。
注意事項
-
データのバックアップと復元は、
elasticsearch-repository-ossプラグインに依存します。このプラグインは、すべての Alibaba Cloud Elasticsearch インスタンスにプリインストールされており、削除できません。elasticsearch-repository-oss。スナップショットに保存されるのはインデックスデータのみで、モニタリングデータ (
.monitoringまたは.security_auditプレフィックスインデックス)、メタデータ、translog、設定、パッケージ、プラグイン、ログは保存されません。自動バックアップでは、直近 7 日間のスナップショットのみが保持されます。7 日を過ぎると、システムは期限切れのスナップショットを自動的に削除し、基盤ストレージもクリーンアップします。削除されたデータは復元できません。バックアップデータを 7 日を超えて保持する必要がある場合は、期限切れになる前に 手動バックアップとリストア または スナップショットをローカルの OSS バケットに自動バックアップする を使用して、スナップショットを手動でエクスポートまたは移行してください。自動バックアップのスナップショットは、元のクラスターにのみリストアできます。別のクラスターにデータをリストアするには、手動バックアップとリストア を使用してください。 -
自動バックアップのインデックスメタデータは
100 MBを超えることはできません。超過した場合、バックアップタスクが失敗する可能性があります。代わりに 手動バックアップとリストア を使用してください。 -
最初のスナップショットはフルデータコピーのため、時間がかかる場合があります。初回バックアップには 手動バックアップとリストア を使用してください。
-
自動バックアップの有効化とスナップショットリポジトリ (
aliyun_auto_snapshot) の作成は無料です。ただし、自動バックアップのスナップショットデータは Object Storage Service (OSS) に保存されるため、OSS のストレージ料金が発生します。バックアップコストは、スナップショットデータ量と OSS の保存期間に依存します。
自動バックアップの有効化とクラスターアラートの設定
自動バックアップの有効化
-
Alibaba Cloud Elasticsearch コンソールにログインします。
-
左側のナビゲーションペインで、Elasticsearch クラスター をクリックします。
-
上部のメニューバーで、リソースグループとリージョンを選択します。
-
Elasticsearch クラスター ページで、対象インスタンスの ID をクリックします。
-
左側のナビゲーションペインで、スナップショット をクリックします。
-
データスナップショット (無料トライアル版) エリアで、[Auto Snapshot] スイッチをオンにします。
-
自動スナップショット期間 の横にある 設定 をクリックします。
Enhanced Edition インスタンスでは、自動バックアップの実行時刻はシステムにより生成され、変更できません。
-
自動スナップショット設定 パネルで、スナップショット期間 (自動バックアップの実行タイミング) を選択します。
バックアップサイクル
説明
30 分ごと
30 分ごとにバックアップします。
毎日
カスタマイズ可能な時刻に毎日バックアップします。
カスタム
バックアップサイクルと時刻をカスタマイズします。
自動バックアップの実行時刻は、インスタンスのリージョンの現地時刻です。
-
OK をクリックします。
クラスターアラートの設定
自動バックアップを有効化した後、スナップショットのバックアップ状態を監視するために クラスターアラート を設定してください。モニタリングページで snapshot status (value) が 2 の場合、スナップショットタスクが失敗したことを示します。
/_cat/snapshots/aliyun_auto_snapshot?format=json を実行して、最新のスナップショット状態を確認してください。必要に応じて 手動バックアップ を実行してください。
スナップショット状態は次のいずれかです:
-
SUCCESS:すべてのシャードが正常にバックアップされました。
-
PARTIAL:一部のシャードのバックアップに失敗しました。
-
FAILED:バックアップタスクが失敗しました。
直近のスナップショットが存在しない場合、バックアップは実行されていません。クラスターまたはノードレベルの例外により、自動バックアップが実行されない場合があります。
バックアップスナップショットの表示
自動バックアップを有効にした後、Kibana コンソールで _snapshot API を使用してスナップショットを表示できます (Kibana を使用してクラスターに接続する)。
-
スナップショットリポジトリの表示:
GET _snapshotレスポンス例:
{ "aliyun_auto_snapshot" : { "type" : "oss", "settings" : { "compress" : "true", "base_path" : "cf95b9-185320276651****/es-cn-09k2053us0003****", "endpoint" : "http://oss-cn-hangzhou-internal.aliyuncs.com" } } }パラメーター
説明
aliyun_auto_snapshot
最初のスナップショットの作成時に作成される自動スナップショットリポジトリです。名前は常に
aliyun_auto_snapshotです。リポジトリには複数のスナップショットが格納されます。各スナップショットには、すべて、一部、または単一のインデックスのバックアップデータが含まれます。type
ストレージメディアです。
ossは Object Storage Service (OSS) を示します。compress
スナップショットのメタデータファイル (インデックスマッピング、設定) を圧縮するかどうかを指定します。データファイルには影響しません。デフォルト:
true。base_path
OSS 内の保存パスです。
endpoint
インスタンスのリージョンに対応する OSS バケットのエンドポイントです。
-
aliyun_auto_snapshotリポジトリ内のすべてのスナップショットに関する情報の表示:GET _snapshot/aliyun_auto_snapshot/_allレスポンス例:
{ "snapshots": [ { "snapshot": "es-cn-09k2053us0003****_20210117030003", "uuid": "vIdSCkthTeGa0nSj4D****", "version_id": 5050399, "version": "5.5.3", "indices": [ ".kibana" ], "state": "SUCCESS", "start_time": "2018-06-28T01:22:39.609Z", "start_time_in_millis": 1530148959609, "end_time": "2018-06-28T01:22:39.923Z", "end_time_in_millis": 1530148959923, "duration_in_millis": 314, "failures": [ ], "shards": { "total": 1, "failed": 0, "successful": 1 } }, { "snapshot": "es-cn-09k2053us0003****_20210118030004", "uuid": "XKO_Uwz_Qu6mZrU3Am****", "version_id": 5050399, "version": "5.5.3", "indices": [ ".kibana" ], "state": "SUCCESS", "start_time": "2018-06-28T01:25:00.764Z", "start_time_in_millis": 1530149100764, "end_time": "2018-06-28T01:25:01.482Z", "end_time_in_millis": 1530149101482, "duration_in_millis": 718, "failures": [ ], "shards": { "total": 1, "failed": 0, "successful": 1 } } ] }自動バックアップはインスタンスのリージョンの現地時刻でスケジュールされますが、API レスポンスのタイムスタンプは UTC で返されます。中国標準時 (UTC+8) は UTC より 8 時間進んでいます。
stateフィールドはスナップショット状態を示します:スナップショット状態
説明
IN_PROGRESS
スナップショット作成中です。
SUCCESS
スナップショットが完了しました。すべてのシャードデータが保存されています。
FAILED
スナップショットが失敗しました。
PARTIAL
部分的に成功しました。少なくとも 1 つのシャードが保存されていません。
INCOMPATIBLE
スナップショットが Alibaba Cloud Elasticsearch インスタンスのバージョンと互換性がありません。
自動バックアップのスナップショットには、次の追加のデフォルトパラメーターがあります:
パラメーター
説明
max_snapshot_bytes_per_sec
ノードあたりのスナップショット最大スループットです。デフォルト: 40 MB/s。
max_restore_bytes_per_sec
ノードあたりのリストア最大スループットです。デフォルト: 40 MB/s。
chunk_size
スナップショット作成時に大きなファイルを分割するためのチャンクサイズです (例:
1g、10m、5k)。デフォルト:null(制限なし)。 -
aliyun_auto_snapshotリポジトリ内の特定のスナップショットに関する詳細情報の表示:GET _snapshot/aliyun_auto_snapshot/<snapshot>/_status<snapshot>:自動バックアップスナップショットの名前です (前述の全スナップショット表示コマンドで確認)。例:
es-cn-09k2053us0003****_20210118030004。レスポンス例:
{ "snapshots": [ { "snapshot": "es-cn-09k2053us0003****_20210118030004", "repository": "aliyun_auto_snapshot", "uuid": "XKO_Uwz_Qu6mZrU3Am****", "state": "SUCCESS", "shards_stats": { "initializing": 0, "started": 0, "finalizing": 0, "done": 1, "failed": 0, "total": 1 }, "stats": { "number_of_files": 4, "processed_files": 4, "total_size_in_bytes": 3296, "processed_size_in_bytes": 3296, "start_time_in_millis": 1530148959688, "time_in_millis": 77 }, "indices": { ".kibana": { "shards_stats": { "initializing": 0, "started": 0, "finalizing": 0, "done": 1, "failed": 0, "total": 1 }, "stats": { "number_of_files": 4, "processed_files": 4, "total_size_in_bytes": 3296, "processed_size_in_bytes": 3296, "start_time_in_millis": 1530148959688, "time_in_millis": 77 }, "shards": { "0": { "stage": "DONE", "stats": { "number_of_files": 4, "processed_files": 4, "total_size_in_bytes": 3296, "processed_size_in_bytes": 3296, "start_time_in_millis": 1530148959688, "time_in_millis": 77 } } } } } } ] }
自動バックアップからのデータリストア
システムインデックス (プレフィックス .) をリストアすると、Kibana にアクセスできなくなる場合があります。システムインデックスはリストアしないでください。
Kibana コンソールで、次のコマンドを実行してスナップショットからインデックスデータをリストアしてください:
-
特定のスナップショットからすべてのインデックスをリストアする (バックグラウンドで実行されます):
POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore<snapshot>:自動バックアップスナップショットの名前です。例:
es-cn-abcdefghij****_20180627091600。 -
特定のスナップショットからすべてのインデックスをリストアし、タスクの完了を待機する。
_restore API は非同期です。完了を待機するには
wait_for_completionを追加してください:POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore?wait_for_completion=true<snapshot>:自動バックアップスナップショットの名前です。例:
es-cn-abcdefghij****_20180627091600。 -
スナップショットから特定のインデックスをリストアし、処理中に名前を変更する (バックグラウンドで実行されます):
POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore { "indices": "index_1", "rename_pattern": "index_(.+)", "rename_replacement": "restored_index_$1" }パラメーター
説明
<snapshot>
自動バックアップスナップショットの名前です。例:
es-cn-abcdefghij****_20180627091600。indices
リストアするインデックスの名前です。
rename_pattern
任意。リストア対象のインデックス名に一致する正規表現です。
rename_replacement
任意。一致したインデックス名を変更するための置換パターンです。
自動バックアップの無効化
-
Alibaba Cloud Elasticsearch コンソールにログインします。
-
左側のナビゲーションペインで、Elasticsearch クラスター をクリックします。
-
上部のメニューバーで、リソースグループとリージョンを選択します。
-
Elasticsearch クラスター ページで、対象インスタンスの ID をクリックします。
-
左側のナビゲーションペインで、スナップショット をクリックします。
-
データスナップショット (無料トライアル版) エリアで、自動スナップショット スイッチをオフにします。
よくある質問
自動バックアップが失敗するのはなぜですか。増分スナップショットがフルスナップショットと同じくらい時間がかかるのはなぜですか。
自動バックアップがスナップショットデータを OSS に書き込む際に、OSS の 1 秒あたりのクエリ数 (QPS) の上限を超えると、バックアップが失敗したり、増分スナップショットにフルスナップショットと同程度の時間がかかったりする場合があります。この場合、QpsLimitExceeded エラーが報告されます。この問題は、00:00 ~ 02:00 などのピーク時間帯に発生しやすく、OSS のスロットリングが発生する可能性が高くなります。
この問題を解決するには:
-
OSS の QPS スロットリングが発生する可能性を下げるために、自動バックアップのスケジュールを 03:00 ~ 04:00 などのオフピーク時間帯に調整してください。
-
バックアップが失敗した場合は、しばらく待ってから再試行してください。この問題は通常一時的なものであり、クラスターの通常の運用やビジネスワークロードには影響しません。
コンソールで自動バックアップスナップショットを表示するにはどうすればよいですか。
Elasticsearch クラウドネイティブ PaaS インスタンスの場合、コンソールには自動バックアップスナップショットを表示するための直接のエントリポイントがありません。PaaS インスタンスの自動バックアップスナップショットを表示するには、次のいずれかの方法を使用してください:
-
Kibana: クラスターの Kibana コンソールにログインし、[Management] > [Snapshot and Restore] に移動して、利用可能なスナップショットを表示できます。
-
API: Kibana Dev Tools コンソールで次のコマンドを実行するか、Elasticsearch API を直接呼び出してください:
GET _snapshot/aliyun_auto_snapshot/_allこのコマンドは、
aliyun_auto_snapshotリポジトリ内のすべてのスナップショットを返します。これには、スナップショット名、状態、開始時刻、インデックス情報が含まれます。