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