スナップショットポリシーの繰り返し失敗への対処

繰り返しのスナップショット失敗は、通常、デプロイメントに問題があることを示しています。自動スナップショットの継続的な失敗は、データ損失や障害が発生した場合に回復オプションがないデプロイメントを残す可能性があります。

Elasticsearchは、自動スナップショットを実行する際の繰り返し失敗の回数を追跡します。自動スナップショットが成功することなくあまりにも多くの回数失敗した場合、ヘルスAPIは警告を報告します。警告を報告する前の繰り返し失敗の回数は、slm.health.failed_snapshot_warn_threshold設定によって制御されます。

自動スナップショットライフサイクル管理ポリシーの実行が繰り返し失敗している場合は、問題に関する詳細情報を得るために次の手順に従ってください:

失敗しているスナップショットライフサイクル管理ポリシーのステータスを確認するには、Kibanaに移動し、スナップショットライフサイクルポリシー情報を取得する必要があります。

Kibanaを使用する

  • 1. Elastic Cloudコンソールにログインします。
  • 2. Elasticsearchサービスパネルで、デプロイメントの名前をクリックします。
    デプロイメントの名前が無効になっている場合、Kibanaインスタンスが正常でない可能性があります。その場合は、Elasticサポートに連絡してください。デプロイメントにKibanaが含まれていない場合は、最初にKibanaを有効にするだけで済みます。
  • 3. デプロイメントのサイドナビゲーションメニュー(左上隅のElasticロゴの下に配置)を開き、Dev Tools > Consoleに移動します。
    Kibana Console
  • 4. スナップショットライフサイクル管理ポリシーを取得

Python

  1. resp = client.slm.get_lifecycle(
  2. policy_id="<affected-policy-name>",
  3. )
  4. print(resp)

Js

  1. const response = await client.slm.getLifecycle({
  2. policy_id: "<affected-policy-name>",
  3. });
  4. console.log(response);

コンソール

  1. GET _slm/policy/<affected-policy-name>

応答は次のようになります:

コンソール-結果

  1. {
  2. "affected-policy-name": {
  3. "version": 1,
  4. "modified_date": "2099-05-06T01:30:00.000Z",
  5. "modified_date_millis": 4081757400000,
  6. "policy" : {
  7. "schedule": "0 30 1 * * ?",
  8. "name": "<daily-snap-{now/d}>",
  9. "repository": "my_repository",
  10. "config": {
  11. "indices": ["data-*", "important"],
  12. "ignore_unavailable": false,
  13. "include_global_state": false
  14. },
  15. "retention": {
  16. "expire_after": "30d",
  17. "min_count": 5,
  18. "max_count": 50
  19. }
  20. },
  21. "last_success" : {
  22. "snapshot_name" : "daily-snap-2099.05.30-tme_ivjqswgkpryvnao2lg",
  23. "start_time" : 4083782400000,
  24. "time" : 4083782400000
  25. },
  26. "last_failure" : {
  27. "snapshot_name" : "daily-snap-2099.06.16-ywe-kgh5rfqfrpnchvsujq",
  28. "time" : 4085251200000,
  29. "details" : """{"type":"snapshot_exception","reason":"[daily-snap-2099.06.16-ywe-kgh5rfqfrpnchvsujq] failed to create snapshot successfully, 5 out of 149 total shards failed"}"""
  30. },
  31. "stats": {
  32. "policy": "daily-snapshots",
  33. "snapshots_taken": 0,
  34. "snapshots_failed": 0,
  35. "snapshots_deleted": 0,
  36. "snapshot_deletion_failures": 0
  37. },
  38. "next_execution": "2099-06-17T01:30:00.000Z",
  39. "next_execution_millis": 4085343000000
  40. }
  41. }
影響を受けたスナップショットライフサイクルポリシー。
ポリシーの最後の失敗に関する情報。
失敗が発生した時間(ミリ秒単位)。フォーマットされたタイムスタンプを表示するには、human=trueリクエストパラメータを使用します。
スナップショット失敗の理由を含むエラーの詳細。

スナップショットはさまざまな理由で失敗する可能性があります。失敗が構成エラーによるものである場合は、自動スナップショットが使用しているリポジトリのドキュメントを参照してください。そのようなデプロイメントを使用している場合は、ECEでのリポジトリ管理に関するガイドを参照してください。

一般的な失敗シナリオの1つはリポジトリの破損です。これは、複数のElasticsearchインスタンスが同じリポジトリの場所に書き込むときに最も頻繁に発生します。この問題を修正するための別のトラブルシューティングガイドがあります。

他の理由でスナップショットが失敗している場合は、スナップショット実行期間中に選ばれたマスターノードのログを確認して、詳細情報を取得してください。

スナップショットライフサイクル管理ポリシーを取得

Python

  1. resp = client.slm.get_lifecycle(
  2. policy_id="<affected-policy-name>",
  3. )
  4. print(resp)

Js

  1. const response = await client.slm.getLifecycle({
  2. policy_id: "<affected-policy-name>",
  3. });
  4. console.log(response);

コンソール

  1. GET _slm/policy/<affected-policy-name>

応答は次のようになります:

コンソール-結果

  1. {
  2. "affected-policy-name": {
  3. "version": 1,
  4. "modified_date": "2099-05-06T01:30:00.000Z",
  5. "modified_date_millis": 4081757400000,
  6. "policy" : {
  7. "schedule": "0 30 1 * * ?",
  8. "name": "<daily-snap-{now/d}>",
  9. "repository": "my_repository",
  10. "config": {
  11. "indices": ["data-*", "important"],
  12. "ignore_unavailable": false,
  13. "include_global_state": false
  14. },
  15. "retention": {
  16. "expire_after": "30d",
  17. "min_count": 5,
  18. "max_count": 50
  19. }
  20. },
  21. "last_success" : {
  22. "snapshot_name" : "daily-snap-2099.05.30-tme_ivjqswgkpryvnao2lg",
  23. "start_time" : 4083782400000,
  24. "time" : 4083782400000
  25. },
  26. "last_failure" : {
  27. "snapshot_name" : "daily-snap-2099.06.16-ywe-kgh5rfqfrpnchvsujq",
  28. "time" : 4085251200000,
  29. "details" : """{"type":"snapshot_exception","reason":"[daily-snap-2099.06.16-ywe-kgh5rfqfrpnchvsujq] failed to create snapshot successfully, 5 out of 149 total shards failed"}"""
  30. },
  31. "stats": {
  32. "policy": "daily-snapshots",
  33. "snapshots_taken": 0,
  34. "snapshots_failed": 0,
  35. "snapshots_deleted": 0,
  36. "snapshot_deletion_failures": 0
  37. },
  38. "next_execution": "2099-06-17T01:30:00.000Z",
  39. "next_execution_millis": 4085343000000
  40. }
  41. }
影響を受けたスナップショットライフサイクルポリシー。
ポリシーの最後の失敗に関する情報。
失敗が発生した時間(ミリ秒単位)。フォーマットされたタイムスタンプを表示するには、human=trueリクエストパラメータを使用します。
スナップショット失敗の理由を含むエラーの詳細。

スナップショットはさまざまな理由で失敗する可能性があります。失敗が構成エラーによるものである場合は、自動スナップショットが使用しているリポジトリのドキュメントを参照してください。

一般的な失敗シナリオの1つはリポジトリの破損です。これは、複数のElasticsearchインスタンスが同じリポジトリの場所に書き込むときに最も頻繁に発生します。この問題を修正するための別のトラブルシューティングガイドがあります。

他の理由でスナップショットが失敗している場合は、スナップショット実行期間中に選ばれたマスターノードのログを確認して、詳細情報を取得してください。