ローカルフォロワーデータセンターでの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で変更してください)。
-
Elasticsearch接続構成ファイル をリモートDXPクラスターノードの
osgi/configsフォルダからローカルDXPクラスターノードの対応するフォルダにコピーします。Liferay DXP 7.3の場合、これには
*ElasticsearchConnectionConfiguration-remote.configと*ElasticsearchConfiguration.configが含まれています。importantElasticsearchConfiguration.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に提供します。warningLiferay 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を構成します。
-
グローバルメニューを開き コントロールパネル → システム設定 に来ます。 [検索機能] カテゴリを開きます。
-
[クラスター横断レプリケーション] を開きます。
-
[ローカルクラスターからの読み取り] のボックスをオンにします。
-
[ローカルクラスター設定] に値を1つ設定します (
localhost:9080,ccr)。importantここでは、決してリモートデータセンターに値を設定しないでください(例では、
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が構成されました。 構成で問題が発生した場合は、トラブルシューティングガイドを確認してください。