すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:ディスク使用率が高い場合と読み取り専用インデックス

最終更新日:Jan 16, 2025

Alibaba Cloud Elasticsearchクラスターのディスク使用率が 85% を超えると、クラスターまたはKibanaがサービスを提供できなくなる可能性があります。このトピックでは、この問題の解決方法について説明します。

重要 免責事項: このトピックには、サードパーティ製品に関する情報が含まれている場合があります。このような情報は参照のみを目的としています。Alibaba Cloudは、サードパーティ製品のパフォーマンスと信頼性、および製品に対する操作の潜在的な影響について、明示的または黙示的にいかなる保証も行いません。

問題の説明

  • システムがインデックスリクエストを受信した後、index read_only のようなエラーメッセージ(FORBIDDEN/12/index read-only / allow delete (api)];] など)が返されます。
  • クラスターは赤色で示される状態です。深刻なケースでは、一部のノードがクラスターに参加しません。GET _cat/nodes? コマンドを実行して、クラスター内のノードを表示できます。また、一部のシャードはノードに割り当てられていません。GET _cat/allocation?v コマンドを実行して、シャードの割り当てを表示できます。
    説明 クラスターが赤色で示される状態の場合、クラスターのプライマリシャードは使用できず、クラスター上のデータが失われる可能性があります。
  • Kibanaコンソールでパイプラインが作成された場合、またはBeatが登録された場合、internal server error メッセージが返されます。
  • クラスターの [クラスター監視] ページ、またはクラスターのKibanaコンソールの [監視] ページで、ディスク使用率が最近 100% に達しました。

原因

前述の問題は、ディスク使用率が高いことが原因です。ノードのディスク使用率には、次のしきい値があります。

  • 85%: ノードのディスク使用率が 85% を超えると、システムは新しいシャードをノードに割り当てなくなります。
  • 90%: ノードのディスク使用率が 90% を超えると、システムはノード上のシャードをディスク使用率の低い他のデータノードに移行します。
  • 95%: ノードのディスク使用率が 95% を超えると、システムはクラスター内のすべてのインデックスに read_only_allow_delete 属性を強制的に追加します。その結果、インデックスにデータを書き込むことができなくなり、インデックスからデータを読み取るか、インデックスを削除することしかできなくなります。Disk usage

解決策

  1. 次のコマンドを実行してデータを削除します。
    警告 削除されたデータは復元できません。注意して進めてください。データを保持することもできますが、ディスクのサイズを変更する必要があります。詳細については、「クラスターの構成をアップグレードする」をご参照ください。
    curl -u <username>:<password> -XDELETE  http://<host>:<port>/<index-name>
    • <host> をクラスターの内部エンドポイントまたはパブリックエンドポイントに設定します。このコマンドを実行する前に、関連するホワイトリストを構成することをお勧めします。
    • 上記のコマンドを実行した後にクラスターが応答しない場合は、強制再起動をトリガーし、再起動中にこのコマンドを実行してみることをお勧めします。
  2. インデックスがまだ読み取り専用かどうかを確認します。読み取り専用の場合は、次のコマンドを実行して、すべてのインデックスの index.blocks.read_only_allow_delete 属性を null に設定し、クラスター上のすべてのインデックスが読み取り専用にならないようにします。
    PUT _settings
    {  
       "index.blocks.read_only_allow_delete": null
    }
  3. クラスターがまだ赤色で示される状態かどうかを確認します。そうである場合は、_cat/allocation?v コマンドを実行して、クラスターに割り当てられていないシャードが含まれているかどうかを確認します。
  4. クラスターに割り当てられていないシャードが含まれている場合は、GET _cluster/allocation/explain コマンドを実行して理由を表示します。理由が次の図に示されているものと同様の場合は、POST /_cluster/reroute?retry_failed=true コマンドを実行します。Reason why shards are not allocated
  5. シャードが割り当てられた後、クラスターの状態を表示します。クラスターがまだ赤色で示される状態の場合は、Alibaba Cloudテクニカルサポートエンジニアにお問い合わせください。

追加情報

Alibaba Cloud Elasticsearchに対するディスク使用率が高いことの影響を回避するために、ディスク使用率の監視とアラートを有効にすることをお勧めします。また、アラートテキストメッセージを適時に確認し、事前に適切な対策を講じる必要があります。詳細については、「クラスターアラートを構成する」をご参照ください。