ローカルフォロワーデータセンターでのCCRの構成
以下の手順を実行する前に、まず リモート/リーダー データ センターで CCR を構成します 。
ローカル/フォロワーデータセンターには、Liferay DXPクラスターノードが保持されており、同じ場所に配置されたElasticsearchクラスターへの読み取り専用接続とリモート/リーダーデータセンターのElasticsearchクラスターへの書き込み専用接続があります。
設定例はすべて、 CCR 設定リファレンス ガイドでも提供されています。
フォロワーElasticsearchクラスターの構成
ローカルElasticsearchクラスターはフォロワー(レプリケート済み、読み取り専用)インデックスを保持する必要があり、同じ場所にあるLiferay DXPノードが読み取ることができるローカル検索エンジンとして機能します。
CCR インストールのセキュリティ保護: 前に述べたように Elasticsearch クラスターは同じ CA によって署名されたノード証明書を使用する必要があり、各クラスターのセキュリティ設定は一致している必要があります。 その他のアプローチと詳細については、 Elastic のドキュメントを参照してください。
-
elasticsearch.ymlを構成します。[Follower Elasticsearch Home]/config/elasticsearch.ymlcluster.name: LiferayElasticsearchCluster_FOLLOWER node.name: es-follower-node-1 http.port: 9201 transport.port: 9301 xpack.security.enabled: true ### TLS/SSL settings for Transport layer xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.keystore.path: certs/elastic-nodes.p12 xpack.security.transport.ssl.keystore.password: liferay xpack.security.transport.ssl.truststore.path: certs/elastic-nodes.p12 xpack.security.transport.ssl.truststore.password: liferay xpack.security.transport.ssl.verification_mode: certificate ## TLS/SSL settings for HTTP layer xpack.security.http.ssl.enabled: true xpack.security.http.ssl.keystore.path: certs/elastic-nodes.p12 xpack.security.http.ssl.keystore.password: liferay xpack.security.http.ssl.truststore.path: certs/elastic-nodes.p12 xpack.security.http.ssl.truststore.password: liferay # For Kibana xpack.monitoring.collection.enabled: trueセキュリティ設定を使用するには(
xpack.security...) パスワードを設定し、ノード証明書を取得する必要があります。 -
サーバーを起動します。 サーバーディレクトリのルートにいる場合は、以下を実行します。
./bin/elasticssearch -
試用段階で、まだ適切なライセンスを持っていない場合は、Elasticsearchのトライアルを開始してください。
POST /_license/start_trial?acknowledge=true
ローカルLiferay DXPクラスターノードの構成
ローカルでテストする場合は、TomcatがリモートのDXPノードと異なるポートを使用するように設定します。 このサンプル設定に従うには、HTTP ポートとして 9080 、リダイレクト ポートとして 9443 、シャットダウン ポートとして 9005 を使用します ( [Liferay Home]/tomcat-[version]/conf/server.xmlでサーバー ポートを変更してください)。
-
リモート DXP クラスター ノードの
osgi/configsフォルダーから Elasticsearch 接続構成ファイル を、ローカル DXP クラスター ノードの対応するフォルダーにコピーします。Liferay DXP 7.3の場合、これには
*ElasticsearchConnectionConfiguration-remote.configと*ElasticsearchConfiguration.configが含まれています。重要ElasticsearchConfiguration.config内のremoteClusterConnectionId値は、ElasticsearchConnectionConfiguration-remote.configファイル内のconnectionIdと一致する必要があります。Liferay DXP 7.1および7.2では、
*ElasticsearchConfiguration.configおよび*XPackSecurityConfiguration.configが含まれています。これらのファイルが提供されると、ローカルDXPクラスターノードの書き込み接続が構成されます。
-
次に、フォロワーインデックスを使用してローカルElasticsearchサーバーへの読み取り専用接続を構成します。
Liferay DXP 7.3の場合、
com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConnectionConfiguration-ccr.configという名前の構成ファイルをLiferay Home/osgi/configsに提供します。以下のコンテンツを指定します
active=B"true" connectionId="ccr" username="elastic" password="liferay" authenticationEnabled=B"true" httpSSLEnabled=B"true" networkHostAddresses=["https://localhost:9201"] truststorePassword="liferay" truststorePath="/PATH/TO/elastic-nodes.p12" truststoreType="pkcs12"Liferay DXP 7.1および7.2の場合、
com.liferay.portal.search.elasticsearch.cross.cluster.replication.internal.configuration.ElasticsearchConnectionConfiguration-ccr.configという名前の構成ファイルをLiferay Home/osgi/configsに提供します。警告Liferay 7.2 では、CCR 接続の構成ファイル (例:
ElasticsearchConnectionConfiguration-ccr.config) を、LES クロス クラスター レプリケーション LPKG の初期デプロイメントと同時にデプロイしないでください。 モジュールが完全に起動する前に設定ファイルがデプロイされると、Liferay の検索機能が壊れるという既知のバグ (LPS-127821) があります。 すでにこの問題に遭遇している場合は、回避策については「 クラスター間レプリケーションのトラブルシューティング 」を参照してください。clusterName="LiferayElasticsearchCluster_FOLLOWER" connectionId="ccr" username="elastic" password="liferay" authenticationEnabled=B"true" transportSSLEnabled=B"true" networkHostAddress="https://localhost:9201" transportAddresses=["localhost:9301"] sslTruststorePassword="liferay" sslTruststorePath="/PATH/TO/elastic-nodes.p12" certificateFormat="pkcs12" sslKeystorePassword="liferay" sslKeystorePath="/PATH/TO/elastic-nodes.p12"構成ファイル名には任意のサフィックス (この例では
-ccr) を使用できますが、一貫性を保つために、構成内のconnectionIdプロパティと同じにする必要があります。 -
Liferay DXPクラスターノードを起動します。
これで接続が構成されました。

あとは、CCR自体を有効にして構成するだけです。
クラスター横断レプリケーションモジュールの設定
LESクラスター横断レプリケーションモジュールは、リーダークラスターの後続、およびリーダークラスターからフォロワークラスターへのすべてのインデックスの初期レプリケーションをトリガーします。 フォローとレプリケーションをトリガーするには、構成ファイル(.config)ではなく、システム設定のUIでCCR機能を有効にする必要があります。 いずれかのデータセンターのLiferay DXPノードからCCRを構成します。
-
グローバル メニューを開き、 コントロール パネル → システム設定に移動します。 検索 カテゴリを開きます。
-
クラスター間レプリケーションを開きます。
-
[ローカルクラスターからの読み取り]のボックスをオンにします。
-
ローカル クラスター構成
localhost:9080,ccrに 1 つの値を設定します。重要ここでリモート データ センターの値を決して設定しないでください (例では、
localhost:8080,remoteになります)。 これを設定すると、同じ名前のリーダーインデックスがすでに存在するリモートクラスタにフォロワーインデックスが作成されます。これは、読み取り専用とする接続を定義するものです。 人間の言語で言うと、ここの各エントリは「このアドレス(
localhost:9080)のLiferayサーバーはこの名前(この例ではccr)のElasticsearch接続から読み取りを行う」ということを示しています。 -
更新をクリックします。
本番環境のセットアップでは、リモートのElasticsearchクラスターに別のトランスポートアドレスを設定したり(この例ではデフォルトを使用)、フォロワーのElasticsearchクラスターへのレプリケートから一部のインデックスを除外したりすることができます。 これらの目的のための設定フィールドがあります。
リモートクラスター内シードノードのトランスポートアドレス:リモートクラスターとローカルクラスター間の接続を確立するために使用される、リモートクラスター内のノードのトランスポートアドレス。 デフォルトはlocalhost:9300です。
除外するインデックス:クラスター横断レプリケーションから除外するインデックス名を入力します。 ピリオド(.)で始まるインデックスは常に除外されます。 デフォルトでは、リモートクラスター内のすべてのインデックスがローカルクラスターにレプリケートされます。 自動レプリケーションが有効になっていない場合、この設定は無視されます。
自動レプリケーションが有効:ローカルクラスターからの読み取りが有効になっている場合、ローカルElasticsearchクラスターでのフォロワーインデックスの自動作成を有効または無効にします。 Elasticsearchを介してレプリケーションを手動で管理する場合は、この設定を無効にします。 デフォルトでは 有効になります。

インデックスレプリケーションが成功し、読み取り接続が有効になっていることを示すログメッセージが表示されます。
2021-01-22 02:15:11.112 INFO [liferay/configuration-1][CrossClusterReplicationConfigurationModelListener:163] Creating follower indexes
2021-01-22 02:15:12.864 INFO [liferay/configuration-1][CrossClusterReplicationConfigurationModelListener:70] Read operations from local clusters are enabled
接続が構成され、インデックスがレプリケートされたら、システムが正しく機能していることを確認します。
セットアップの確認
フォロワーDXPクラスターノードで、[コントロールパネル]→[設定]→[検索機能]に移動します。 Liferay DXP 7.2では、[Connections]タブもクリックする必要があります。 接続は次のようになります。

これでCCRが構成されました。 設定で問題が発生した場合は、 トラブルシューティング ガイドを参照してください。