Alibaba Cloud Elasticsearch で自動バックアップを有効にすると、システムは設定した間隔でインデックスデータをバックアップします。これらのバックアップを使用して、誤ったデータ削除やアプリケーションロジックのエラーから復旧できます。
使用上の注意
データのバックアップと復元には
elasticsearch-repository-ossプラグインが必要です。このプラグインは、すべての Alibaba Cloud Elasticsearch インスタンスにプリインストールされており、削除することはできません。elasticsearch-repository-oss。スナップショットはインデックスデータのみを保存し、モニタリングデータ (
.monitoringまたは.security_auditをプレフィックスとするインデックス)、メタデータ、translog、設定、パッケージ、プラグイン、ログは保存しません。 自動バックアップは直近 7 日間のスナップショットのみを保持します。 期限切れのスナップショットは自動的に削除され、復元できません。 データを 7 日間を超えて保持するには、スナップショットが期限切れになる前に手動バックアップと復元またはスナップショットをローカル OSS バケットに自動的にバックアップするを使用して、スナップショットをエクスポートまたは移行してください。 自動バックアップのスナップショットは、元のクラスターにのみ復元できます。 データを別のクラスターに復元するには、手動バックアップと復元を使用します。自動バックアップのインデックスメタデータは
100 MBを超えることはできません。超えた場合、バックアップタスクが失敗することがあります。代わりに 手動バックアップと復元を使用してください。最初のスナップショットはフルコピーであり、長時間かかる場合があります。初回バックアップには 手動バックアップと復元 を使用することを推奨します。
自動バックアップの有効化とスナップショットリポジトリ (
aliyun_auto_snapshot) の作成は無料です。最初の自動バックアップ、またはフルバックアップがトリガーされるバックアップではフルコピーが実行され、クラスターの CPU と I/O リソースを消費するため、業務パフォーマンスに影響する可能性があります。業務への性能影響を抑えるため、早朝などのオフピーク時間に自動バックアップをスケジュールすることを推奨します。
自動バックアップの有効化とクラスターアラートの設定
自動バックアップの有効化
Alibaba Cloud Elasticsearch コンソールにログインします。
左側のナビゲーションペインで、Elasticsearch クラスター をクリックします。
上部のメニューで、リソースグループとリージョンを選択します。
Elasticsearch クラスター ページで、対象インスタンスの ID をクリックします。
左側のナビゲーションペインで、スナップショット をクリックします。
データスナップショット (無料トライアル版) エリアで、自動スナップショットスイッチをオンにします。
自動スナップショット期間 の横にある 設定 をクリックします。
インスタンスの場合、自動バックアップの時刻はシステムによって生成され、変更できません。
自動スナップショット設定 パネルで、スナップショット期間 (自動バックアップが実行されるタイミング) を選択します。
バックアップサイクル
説明
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
スナップショットのメタデータファイル (インデックスマッピング、設定) を圧縮するかどうかを指定します。データファイルには影響しません。デフォルト:
false。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 で返されます。日本標準時 (JST、UTC+9) は UTC より 9 時間進んでいます。
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>:上記の all-snapshots コマンドで取得した自動バックアップスナップショットの名前。 例:
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 の QPS 上限を超えると、QpsLimitExceeded エラーが報告され、自動バックアップが失敗したり、増分スナップショットに完全スナップショットと同程度の時間がかかったりすることがあります。この現象は、00:00 から 02:00 などのピーク時間帯に発生しやすくなります。
この問題を解決するには:
自動バックアップのスケジュールを 03:00 ~ 04:00 などのオフピーク時間に調整し、OSS の QPS スロットリングが発生する可能性を低減してください。
バックアップが失敗した場合は、しばらく待ってから再試行してください。この問題は通常一時的であり、通常のクラスター運用や業務ワークロードには影響しません。
コンソールで自動バックアップのスナップショットを表示するにはどうすればよいですか。
Elasticsearch クラウドネイティブ PaaS インスタンスの場合、コンソールには自動バックアップのスナップショットを直接表示する項目はありません。代わりに、次のいずれかの方法を使用してください:
Kibana:クラスターの Kibana コンソールにログオンし、[管理] > [スナップショットと復元] に移動して利用可能なスナップショットを表示します。
API:Kibana の開発ツールコンソールで次のコマンドを実行するか、Elasticsearch API を直接呼び出します:
GET _snapshot/aliyun_auto_snapshot/_allこのコマンドは、リポジトリ
aliyun_auto_snapshot内のすべてのスナップショットを返します。これには、スナップショット名、ステータス、開始時刻、およびインデックス情報が含まれます。
自動バックアップタスクが長時間 IN_PROGRESS のままになる場合や、その後のバックアップが失敗する場合はどうすればよいですか。
Elasticsearch では、同一リポジトリで同時に実行できるスナップショットタスクは 1 つだけです。クラスターの一時的な変動により、以前のスナップショットタスクが開始フェーズでハングする (タスクステータスは IN_PROGRESS だが、実際にはデータが書き込まれていない) と、データ競合を避けるために後続の自動バックアップタスクは暗黙的にスキップされます。その結果、バックアップが継続的に失敗する場合があります。
この問題を解決するには:
クラスターの Kibana コンソールにログインし、次のコマンドを実行してスタックしているスナップショットを特定します:
GET _snapshot/aliyun_auto_snapshot/_all次のコマンドを実行して、スタックしているスナップショットタスクをキャンセルし、クリアします:
DELETE _snapshot/aliyun_auto_snapshot/<snapshot>
スナップショットタスクが 1 時間を超えて IN_PROGRESS のままになっていることを検知するカスタムアラートルールを設定し、問題を迅速に特定して対処することを推奨します。
インスタンスのアップグレードまたは設定変更後に自動バックアップが停止し、新しいスナップショットが生成されない場合はどうすればよいですか。
この問題は通常、クラスター自体を参照するクロスクラスターのリポジトリ設定が原因で発生し、スナップショットを書き込めなくなります。
この問題を解決するには:
誤ったクラスター間のリポジトリ設定と既存の自動スナップショットリポジトリ (
aliyun_auto_snapshot) を削除します。Alibaba Cloud Elasticsearch コンソールで自動バックアップをオフにしてから、再度オンにしてください。
システムはスナップショットリポジトリを自動的に再作成し、次回のスケジュールされたバックアップ時刻に通常のバックアップを再開します。