クラスター横断レプリケーションのトラブルシューティング
ここでは、CCRのセットアップ中に発生する既知の一般的な落とし穴と、一般的なトラブルシューティング手法について説明します。 さらに詳しいトラブルシューティングについては、 Elastic社のCCRドキュメント または Elastic社のフォーラム を参照してください。
インデックスレプリケーションの問題の調査
フォロワーElasticsearchクラスターへの読み取り操作が成功するかどうかは、リーダーのインデックスのレプリケーションに依存します。
レプリケーションの問題を診断するために、 com.liferay.portal.search.elasticsearch7.internal.cr.CrossClusterReplicationHelperImpl
に対するINFOログレベルを追加します。 ログレベルは、コントロールパネル → サーバー管理 → ログレベルで追加されます。
接続要求/応答の検査
クラスター横断レプリケーションを有効にするには、Elasticsearchクラスターへの複数の接続を設定する必要があります。
接続の問題の診断を支援するために、com.liferay.portal.search.elasticsearch7.internal.connection.ElasticsearchConnectionManager
に対するINFOログレベルを追加します。 ログレベルは、コントロールパネル → サーバー管理 → ログレベルで追加されます。
再インデックス中の例外:RetentionLeaseNotFoundException
およびIndexNotFoundException
リーダーDXPノードでインデックスの再構築がトリガーされると、フォロワーElasticsearchノードは次のようなエラーをスローする場合があります。
および
フォロワーは、シャードの履歴保持リースで、リーダーの操作の履歴に、そのフォロワーが現在どこにいるのかをマークすることができます。 リーダーのシャードは、そのマーカーより下の操作はマージしても安全だが、そのマーカーより上の操作は、フォロワーがそれらをレプリケートする機会が得られるまで保持する必要があることを認識します。 これらのマーカーによって、フォロワーが一時的にオフラインになっても、リーダーはまだレプリケートされていない操作を保持することができます。 この履歴を保持するにはリーダー側に追加のストレージが必要なため、これらのマーカーは限られた期間のみ有効であり、その後マーカーは期限切れになり、リーダーのシャードは自由に履歴をマージできるようになります。 この期間の長さは、フォロワーがオフラインになったときに保持する追加ストレージの容量や、リーダーからリブートストラップしなくてはならなくなるまでのフォロワーのオフライン期間をどの程度許容するかによって調整できます。
ElasticsearchSecurityException
CCRを設定する場合
CCRの構成時に、次のエラーが発生する可能性があります。
CCRには Platinum Elasticsearchライセンスが必要です。 LESサブスクライバーとして、Liferayから提供されたライセンスでCCRにアクセスできます。 ローカルでテストしている場合は、各クラスターで トライアル を開始できます。
ローカルDXPノードがフォロワーElasticsearchクラスターから読み取りを行わない
クラスター横断レプリケーションを使用するDXPクラスターでは、ローカルのフォロワーElasticsearchクラスターから読み取りを行うには各ローカルDXPノードをマッピングする必要があります。 たとえば、2つのローカルDXPノードがあり、フォロワー接続のconnectionId
がccr
である場合、それらをフォロワーElasticsearchクラスターと一致させるには、ローカルクラスター構成プロパティを次のような値で構成する必要があります。
DXPノードをlocalhost
にバインドしていない場合でも、内部クラスタリングコードはそれを使用している各ノードを識別し続けるため、このプロパティでlocalhost
をホスト名にする必要があります。 localhost
以外のホスト名を使用して内部で(CCR構成を含む)DXPノードを識別する場合は、各DXPノードで次のポータルプロパティを設定する必要があります。
これらのプロパティを使用すると、上記のローカルクラスター構成プロパティは次のようになります。
ステータスが赤のフォロワーElasticsearchクラスター
CCR接続を正常にセットアップし、ローカルDXPノードでCCRを有効にすると、フォロワークラスターが 赤のクラスターヘルスステータス になる場合があります。 これにより、フォロワーのElasticsearchノードのコンソールで次のようなエラーが発生する可能性があります。
これは、セットアップ手順全体で構成、再起動、およびインデックスの再構築を繰り返し行っている場合に発生する可能性があります。 このエラーが発生しているが、接続が適切に構成されていると確信できる場合は、フォロワーインデックスを削除してLiferayのシステム設定からCCRを再度有効にすることで、CCR機能を再度有効にします。
-
すべてのフォロワーインデックスを削除します。 この作業は、Kibanaのインデックス管理UIで最も簡単に行うことができます。
-
リーダーDXPノードから完全なインデックスの再構築を実行します。
-
CCR設定を再度有効にするには、ローカルDXPノードの[システム設定] → [検索] → [クラスター横断レプリケーション]に進みます。 [Read from Local Clusters] の選択を解除し、 [アップデート] をクリックしてモジュールを無効にしてから、 [Read from Local Clusters] を選択し、もう一度 [アップデート] をクリックして再度有効にします。
Liferay 7.2:CCR LPKGとElasticsearchConnectionConfigurationファイルをデプロイした後、検索ができない
ElasticsearchConnectionConfiguration-ccr.config
ファイルと同時にCCR LPKGファイルをデプロイした後に、以下のようなエラーがログに表示され、検索エンジン接続が切断される場合は、既知のバグ LPS-127821 が発生したことになります。 このバグを回避して検索エンジン接続を修正するには、Liferayを再起動するか、別のファイルサブネームを使用して構成を複製します(例: -ccr2.config
。connectionId
設定も更新します)。