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

Elasticsearch:よくあるエラーに関する FAQ

最終更新日:Jan 11, 2025

Alibaba Cloud Elasticsearch クラスターの使用中に問題が発生した場合、クラスターログ、クライアントログ、コマンド実行結果などの関連データにエラーメッセージが表示されることがあります。このトピックでは、Elasticsearch クラスターの使用時に発生する可能性のある一般的なエラーに関するよくある質問への回答を提供します。

Elasticsearch クラスターにデータを書き込むときに、システムに「HTTP/1.1 413 Request Entity Too Large」というエラーメッセージが表示された場合はどうすればよいですか?

原因

Elasticsearch クラスターに一度に書き込まれるデータ量が、http.max_content_length パラメーターの値を超えています。 http.max_content_length パラメーターは、Elasticsearch クラスターに一度に書き込むことができる最大データ量を指定します。このパラメーターのデフォルト値は 100 MB です。この値は変更しないことをお勧めします。

解決策

クラスターに一度に書き込むデータ量を調整します。一度に書き込まれるデータ量は、次の式を使用して計算されます。ドキュメント数 × 各ドキュメントのサイズ。各ドキュメントのサイズと複雑さにも関連しているため、ドキュメント数だけに基づいて、一度に書き込まれるデータ量を正確に見積もることができない場合があります。各ドキュメントに大量のデータが格納されている場合は、一度に書き込むドキュメント数を減らすことができます。一度に書き込むデータ量は 5 MB から 15 MB の間でデバッグすることをお勧めします。デフォルトでは、バルク書き込みリクエストを使用して Elasticsearch クラスターに一度に書き込まれるデータ量は 100 MB を超えることはできません。詳細については、「HTTP 設定」をご参照ください。データ量のデバッグ方法については、オープンソース Elasticsearch のドキュメントの「バルクリクエストの使用とサイズ設定」をご参照ください。

Elasticsearch クラスターにデータを書き込むときに、システムに「forbids automatic creation of the index」というエラーメッセージが表示された場合はどうすればよいですか?

原因

Elasticsearch クラスターで自動インデックス作成機能が有効になっていません。

解決策

Elasticsearch コンソールの YML ファイル設定パネルで、Elasticsearch クラスターの自動インデックス作成機能を有効にします。これは静的な操作です。関連コマンドを実行して、Elasticsearch クラスターの自動インデックス作成機能を動的に有効にすることもできます。 Elasticsearch クラスターの YML ファイルで設定を構成する方法については、「YML ファイルの構成」をご参照ください。

Elasticsearch クラスターのクラスターログに「all shards failed」というエラーメッセージが含まれている場合はどうすればよいですか?

問題の説明

このエラーメッセージは、Elasticsearch クラスターで次の問題が発生する可能性があることを示しています。

  • クラスター内のシャードからデータをクエリできません。

  • クラスターまたはクラスター内のノードが初期化されているため、データを検索できません。

  • クラスター内の 1 つ以上のインデックスに未割り当てのシャードがあるか、クラスター内のインデックスのシャードが復旧中です。クラスターは赤色で示される異常な状態にあります。

原因

この問題は、次のシナリオで発生する可能性があります。

  • ノードが Elasticsearch クラスターから切断されているか、接続中です。

  • データをクエリするシャードが復旧中で、使用できません。

  • Elasticsearch クラスターのディスクが破損しています。

解決策

クラスターの監視データログに基づいて、Elasticsearch クラスターが正常かどうかを確認します。たとえば、Elasticsearch クラスターのディスク容量が十分かどうか、またはインデックスとクラスターの一部の パラメーター構成がシャード割り当ての失敗につながる可能性があるかどうかを確認できます。ノードの切断が発生した場合、または Elasticsearch クラスターに未割り当てのシャードが存在する場合は、次の手順を実行して問題を解決します。

  1. Elasticsearch クラスターの Kibana コンソールにログオンします

  2. Elasticsearch クラスターのシャード割り当てステータスをクエリします。

    GET /_cluster/allocation/explain
    説明

    Elasticsearch クラスター内のすべてのシャードが割り当てられている場合、コマンドが正常に実行された後にエラーメッセージが表示されます。

  3. 割り当てられていないシャードを再割り当てします。

    POST /_cluster/reroute?retry_failed=true

Elasticsearch クラスターのクラスターログに SSL または TLS に関連するエラーメッセージが含まれている場合はどうすればよいですか?

原因

プレーンテキストトラフィックが SSL 接続を介して転送される場合、クラスターのクラスターログには、次の図に示すエラーメッセージが含まれます。ほとんどの場合、この問題は、暗号化通信が有効になっていないノードが、暗号化通信が有効になっているノードに接続しようとするときに発生します。SSL/TSL报错

解決策

次の手順に基づいて問題を解決することをお勧めします。

  • Elasticsearch クラスターへのアクセスが正常かどうかを確認します。クラスターで HTTPS が有効になっていない場合、デフォルトでは HTTP 経由でのみクラスターにアクセスできます。この場合、HTTPS 経由でクラスターにアクセスすると、エラーが報告されます。 HTTPS 経由でクラスターにアクセスする場合は、Elasticsearch コンソールでクラスターの HTTPS を有効にする必要があります。 Elasticsearch クラスターの HTTPS を有効にする方法については、「HTTPS の有効化」をご参照ください。

  • クラスターログに印刷されている IP アドレスが、Elasticsearch クラスターへのアクセスに使用される IP アドレスであるかどうか、およびその IP アドレスがクラスターのパブリック IP アドレスホワイトリストに追加されているかどうかを確認します。クラスターへのアクセスに使用する必要がある IP アドレスまたは CIDR ブロックのみを、クラスターのパブリック IP アドレスホワイトリストに追加することをお勧めします。 0.0.0.0/0 をパブリック IP アドレスホワイトリストに追加しないことをお勧めします。

SSL または TLS に関連する問題の詳細については、「一般的な SSL/TLS 例外」をご参照ください。

X-Pack が提供する SQL プラグインを使用してクエリを実行するときに、システムに「No keyword/multi-field defined exact matches for [KeywordField]」というエラーメッセージが表示された場合はどうすればよいですか?

原因

text タイプのフィールドが、LIKE 演算子が使用されるクエリに使用されています。

解決策

X-Pack が提供する SQL プラグインを使用して実行される LIKE 演算子ベースのクエリは、keyword タイプのフィールドに対してのみ正確なフィルターを実行できます。これらのクエリは、text タイプのフィールドの正確なフィルターをサポートしていません。クエリが期待どおりに実行されるようにするには、keyword タイプのフィールドを使用する必要があります。詳細については、「Elastic Search v.7.3 を使用してマルチフィールドで SQL クエリを実行できない」および「SQL とマルチフィールド」をご参照ください。

PUT _snapshot/my_backup コマンドを実行して Elasticsearch クラスターのスナップショットを作成してクラスターのデータをバックアップするときに、システムに「path is not accessible on master node」というエラーメッセージが表示された場合はどうすればよいですか?

原因

スナップショットの格納に使用するオブジェクトストレージサービス (OSS) バケットは、アーカイブストレージクラスのバケットです。この場合、バケットからデータを読み取る前に、バケット内のオブジェクトを復元する必要があります。

解決策

Alibaba Cloud Elasticsearch では、Elasticsearch クラスター用に作成されたスナップショットをアーカイブストレージクラスの OSS バケットに格納することはできません。 Elasticsearch クラスターと同じリージョンにある標準ストレージクラスの OSS バケットを使用する必要があります。 Elasticsearch クラスターのデータをバックアップするためにスナップショットを作成する方法については、「手動スナップショットの作成と手動スナップショットからのデータの復元」をご参照ください。

Elasticsearch クラスターの Kibana コンソールにログオンするときに、システムに「kibana did not load properly」というエラーメッセージが表示された場合はどうすればよいですか?

原因

Elasticsearch クラスターのデータノードのディスク使用率が 95% を超えると、Elasticsearch が提供する書き込み保護メカニズムがトリガーされます。システムは、Elasticsearch クラスター内のすべてのインデックスの read_only_allow_delete プロパティを強制的に構成します。その結果、インデックスにデータを書き込むことができなくなり、インデックスからデータを読み取るか、インデックスを削除することしかできなくなります。

解決策

  1. ディスク使用率が高い問題を解決します。詳細については、「高いディスク使用率と読み取り専用インデックス」をご参照ください。

  2. 次のコマンドを実行して、すべてのインデックスの index.blocks.read_only_allow_delete プロパティを null に設定します。これにより、クラスター上のすべてのインデックスが読み取り専用ではなくなります。

    PUT _settings
    {  
       "index.blocks.read_only_allow_delete": null
    }

aliyun-qos プラグインを使用するときに、システムに「unsupported_operation_execption」というエラーメッセージが表示された場合はどうすればよいですか?

問題の説明

apack.qos.ratelimit.enabled パラメーターを使用して aliyun-qos プラグインのスロットリング機能を有効にした後、リミッターの構成中に次のエラーが報告されます。

{
   "error": {
      "root_cause": [
            {
               "type": "unsupported_operation_exception",
               "reason": "unsupported_operation_exception: only define search or bulk action for limit" // limit には検索またはバルクアクションのみを定義します
            }
         ],
         "type": "unsupported_operation_exception",
         "reason": "unsupported_operation_exception: only define search or bulk action for limit" // limit には検索またはバルクアクションのみを定義します
      },
   "status": 500
}

原因

使用している aliyun-qos プラグインが最新バージョンではありません。

解決策

GET /_cat/plugins?v コマンドを実行して、aliyun-qos プラグインのバージョンを取得します。 Elasticsearch V7.10 クラスターのプラグインの最新バージョンは 7.10.0_ali1.6.0.2 です。他のバージョンの Elasticsearch クラスターのプラグインの最新バージョンは、<Elasticsearch クラスターのバージョン>-rc4 の形式です。プラグインが最新バージョンでない場合は、次のいずれかの方法を使用して問題を解決できます。

  • Elasticsearch V7.10 クラスターにインストールされているプラグイン: クラスターのカーネルバージョンを V1.6.0 に更新します。詳細については、「クラスターのバージョンをアップグレードする」をご参照ください。

  • V7.10 以外のバージョンの Elasticsearch クラスターにインストールされているプラグイン: チケットを送信するElasticsearch のテクニカルエンジニアに連絡して、プラグインのバージョンをアップグレードします。アップグレード後、変更を有効にするには、Elasticsearch クラスターを再起動する必要があります。

重要
  • aliyun-qos プラグインのバージョンが rc4 より前の場合、プラグインを使用すると、システムに unsupported_operation_exception というエラーメッセージが表示されます。

  • V6.7.0 以降の Elasticsearch クラスターにインストールされている aliyun-qos プラグインのバージョンをアップグレードできます。 V6.7.0 より前のバージョンの Elasticsearch クラスターにインストールされている aliyun-qos プラグインのバージョンをアップグレードする場合は、aliyun-qos プラグインのバージョンをアップグレードする前に、クラスターのバージョンを V6.7.0 以降にアップグレードする必要があります。

Transport Client を使用してポート 9300 経由で Elasticsearch クラスターにアクセスするときに、「NoNodeAvailableException」を含むエラーメッセージがシステムに表示された場合はどうすればよいですか?

問題の説明

Transport Client 5.5 または Transport Client 5.6 を使用してポート 9300 経由で Elasticsearch クラスターにアクセスすると、次のエラーメッセージが表示される場合があります: NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{HVdK7Cff****\_P0c9n****}{es-cn-v1qqweee****.elasticsearch.aliyuncs.com}{172.17.XX.XX:9300}]]. ただし、Elasticsearch クラスターには、IP アドレスが 172.17.XX.XX 形式のノードは含まれていません。

解決策

Transport Client 5.3.3 を使用して Elasticsearch クラスターにアクセスすることをお勧めします。詳細については、「Transport Client (5.x)」をご参照ください。

Elasticsearch V7.4 クラスターのクラスターログに「Unclosed object or array found」または「ArrayIndexOutOfBoundsException」というエラーメッセージが含まれている場合はどうすればよいですか?

原因

この問題は、オープンソース Elasticsearch 7.4 のバグが原因であり、ビジネスには影響しません。

解決策

この問題は、7.4 以降のバージョンのオープンソース Elasticsearch で解決されています。 Alibaba Cloud Elasticsearch V7.4 クラスターは廃止予定です。 Elasticsearch V7.4 クラスターの使用中にこの問題が発生した場合は、クラスターのサブスクリプションをキャンセルし、ビジネス要件に基づいて新しいバージョンの Elasticsearch クラスターを購入することをお勧めします。クラスターのサブスクリプションをキャンセルする前に元の Elasticsearch クラスターのデータを移行する場合は、「データ移行ソリューションを選択する」を参照して、ビジネス要件に基づいてデータ移行ソリューションを選択できます。これにより、元の Elasticsearch クラスターのデータの整合性が確保されます。

aliyun-knn プラグインを使用して、コサイン距離測定関数が構成されているベクトルインデックスでベクトル検索を実行するときに、システムに「No field found for [metaData] in mapping with types」というエラーメッセージが表示された場合はどうすればよいですか?

次の手順に基づいて問題を解決することをお勧めします。

  • Elasticsearch クラスターのバージョンが要件を満たしているかどうかを確認します。

    aliyun-knn プラグインは、カーネルバージョンが V1.2 以降の Elasticsearch V6.7 クラスター、およびカーネルバージョンが V1.4 以降の Elasticsearch V7.10 クラスターでのみ使用できます。クラスターバージョンの要件の詳細については、「aliyun-knn プラグインを使用する」をご参照ください。

  • スクリプトクエリを実行するかどうかを確認します。 スクリプトクエリは、script_score パラメーターを使用することによってのみ実行できます。

  • クエリに指定したフィールドが要件を満たしているかどうかを確認します。たとえば、インデックス内のフィールドはネストされたフィールドですが、クエリに指定したフィールドはネストされていません。

Elasticsearch APIキーを使用して認証を行う際に、システムに「ElasticsearchでAPIキーが有効になっていません」というエラーメッセージが表示された場合はどうすればよいですか?Elasticsearch APIキーを使用する

原因

ElasticsearchクラスターでAPIキーが有効になっていません。

解決策

HTTPSを有効にします。詳細については、「HTTPSを有効にする」をご参照ください。