Elasticsearchのトラブルシューティング:よくある問題
ElasticsearchとLiferayの設定中に発生する可能性がある問題点をリストアップしました。 その他の接続固有のエラーについては、 Elasticsearch接続のトラブルシューティングで説明しています。
クラスター名
elasticsearch.yml
のcluster.name
プロパティの値は、Liferay Elasticsearchコネクターで設定されたclusterName
プロパティと一致する必要があります。
トランスポートアドレス
Elasticsearchコネクター設定のtransportAddresses
プロパティの値には、Elasticsearchノードが実行されている有効なホストとポートが少なくとも1つ含まれている必要があります。 Liferayを組み込みモードで実行していて、スタンドアロンのElasticsearchノードまたはクラスターを起動すると、ポート9300
が占有されていることが検出され、ポート9301
に切り替わります。 その後、LiferayのElasticsearchコネクターをリモートモードに設定すると、引き続きデフォルトのポート(9300
)でElasticsearchを検索します。 クラスターのマスターノードとデータノードのアドレスがすべて記載されていることを確認してください。
Elasticsearchへの接続では、コネクター設定オプションについて詳しく説明しています。
ネットワークホストアドレス
Liferay 7.3以降では、バンドルされている sidecar Elasticsearchサーバーは、デフォルトでポート 9201
で実行されます。 これは、ElasticsearchのデフォルトのHTTPポート(9200
)を使用してリモートのElasticsearchインストールのnetworkHostAddress
を設定しても、競合が発生しないことを意味します。 トランスポートアドレスと同様に、クラスターのすべてのマスターノードとデータノードのアドレスがすべて記載されていることを確認してください。
クラスタースニッフィング(追加設定)
Elasticsearchクラスターは複数のノード タイプ を持つことができます。 Elasticsearchコネクターでデフォルトで有効になっている クラスタースニッフィング は、transportAddressesプロパティで設定されたdata
ノードを検索します。 使用可能なものがない場合、コネクターはコンソールログにNoNodeAvailableException
をスローする可能性があります。 このエラーを回避し、クラスタースニッフィングを継続して使用するには、少なくとも1つのデータノードのトランスポートアドレスを設定してください。
クラスタースニッフィングを無効にするには、clientTransportSniff=false
を.config
ファイルに追加するか、[システム設定]の[クライアント・トランスポート・スニフ]プロパティの選択を解除します。
Docker接続の拒否
Liferay DXPコンテナは、接続を確立するためにElasticsearch IPを認識する必要があります。 以下のような因数を渡して、docker run
フェーズでElasticsearchコンテナ名をElasticsearchサーバー ホストIPアドレスにマッピングする/etc/hosts/
エントリーを追加します。
実行中のすべてのコンテナのIPアドレスを取得するには、
設定ファイル名
LiferayをElasticsearchに接続する際に問題が発生した場合(LiferayログにNoNodeAvailableException
メッセージが表示されるなど)、最初に実行する手順の1つは、設定ファイルに適切な名前が付けられていることを確認することです。 認識できない設定ファイルは処理されず、結果としてさまざまなエラーが発生する可能性があります。
Elasticsearchの非推奨ログを無効にする
LiferayのElasticsearchコネクターで使用されるElasticsearch APIが廃止予定となる場合があります。 Liferayに必要な機能に影響がない場合でも、以下の警告ログメッセージが表示される可能性があります。
これらの警告は機能上の問題を示すものではなく、無効にすることができます(方法については、 Deprecation Logging を参照してください)。