Liferay DXPがElastic Cloud上のElasticsearchに接続するための設定方法

この記事では設定例のみを示しており、ローカル/オンプレミスのデプロイメントにおけるElasticsearchを使ったLiferay DXPの設定に精通していることを前提としています。

目次

環境 - Elastic Stack 7.x

  • Liferay DXP 7.3 GA1 * + Elasticsearch 7.9.3 / 7.11.1 **
  • LiferayのDXP 7.2(FP8 / SP3)* + Elasticsearch 7にLiferayのコネクタ (V3.1.0)* + Elasticsearch 7.9.0 / 7.11.1 **

解像度 - Elastic Stack 7.x

  1. 事前: デプロイメントのカスタマイズ画面で、必要な4つのアナライザープラグイン(analysis-icu, analysis-kuromoji, analysis-smartcn, analysis-stempel)が設定されていることを確認してください。
  2. デプロイメントの編集画面の elasticsearch.ymlユーザー設定のオーバーライド セクションに以下のプロパティを追加します。
    • cluster.indices.close.enable: true
  3. デプロイメント作成プロセスの最後にElastic Cloudから提供されるデプロイメント資格情報を保存します。
    • ユーザー名を指定します。 elasticです。
    • パスワードを指定します。 <password>2
  4. デプロイメントの概要ページから Elasticsearchサービスエンドポイントをコピーします。 これに似たような感じになります。
  5. ストップライフレイDXP
  6. 作成 com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.config[Liferay-Home]/ OSGiの/コンフィグ 以下の内容を含みます:
    • DXP 7.3
      • networkHostAddresses=["https://5b8cfb0167c54ab4afb1bbd157471f77.us-west1.gcp.cloud.es.io:9243"]
        productionModeEnabled=B"true"
        username="elastic"
        password="<password>"
        authenticationEnabled=B"true"
        httpSSLEnabled=B"true"
        truststorePassword="changeit"
        truststorePath="/PATH/TO/JDK/cacerts"
        truststoreType="jks"
      • networkHostAddresses:この単一のトランスポートアドレス(Elasticsearchエンドポイントから取得できます)は、コネクタ構成で設定する必要がある唯一のアドレスです。
      • truststorePath:お使いのJDKのデフォルトにポイント のcacerts にあるファイル JAVA_HOME / libに/セキュリティ JDK 11または上の JAVA_HOME / JRE / libに/セキュリティ JDK 8の場合。 パスワードのデフォルトは changeitと
      • セキュリティ関連の制限 も参照してください。
    • DXP 7.2
      • clusterName="5b8cfb0167c54ab4afb1bbd157471f77"
        clientTransportSniff=B"false"
        operationMode="REMOTE"
        transportAddresses=["5b8cfb0167c54ab4afb1bbd157471f77.us-west1.gcp.cloud.es.io:9343"]
      • :Elasticsearchエンドポイントから取得されます。
      • clientTransportSniff:スニッフィングを無効にする必要があります(ref)。
      • transportAddresses:この単一のトランスポートアドレス(Elasticsearchエンドポイントから取得できます)は、コネクター構成で設定する必要がある唯一のアドレスです。 「Elasticsearchサービスにホストされている展開はElasticsearchクラスタと直接通信から輸送クライアントを防ぐプロキシの背後にある」参考文献)。 9343を使用することを忘れないでください!
  7. DXP 7.2でのみ)を作成し com.liferay.portal.search.elasticsearch7.configuration.XPackSecurityConfiguration.config[Liferay-Home]/ OSGiの/コンフィグ 次の内容で。
    • certificateFormat="PKCS#12"
      sslKeystorePath=""
      sslKeystorePassword=""
      sslTruststorePath="/PATH/TO/cacerts.p12"
      sslTruststorePassword="changeit"
      requiresAuthentication=B"true"
      username="elastic"
      password="<password>"
      transportSSLVerificationMode="certificate"
      transportSSLEnabled=B"true"
    • sslTruststorePath:あなたはJDKのデフォルトからすべてのエントリをエクスポートすることができます のcacerts :次のコマンドを使用して、PKCS#12ファイルにファイル のkeytool -importkeystore -srckeystore / PATH / TO / JDK / cacertsに -srcstorepass changeitと-destkeystore / PATH /TO/cacerts.p12 -deststoretype PKCS12 -storepass changeit
    • セキュリティ関連の制限 も参照してください。
  8. DXP 7.2の)Elasticsearch 7 コネクタが以前にデプロイされていない場合は [Liferay-Home]/ osgi / marketplaceに配置します。
  9. LiferayDXPを開始します
  10. コントロールパネルの検索管理者に移動し、接続情報を確認します(DXP 7.1以降)。 すべてが正常に機能している場合は、次のようなものが表示されます。
    • Search Engine Vendor: Elasticsearch, Client Version: 7.3.0, Nodes: 5b8cfb0167c54ab4afb1bbd157471f77: [instance-0000000001 (7.11.1), instance-0000000000 (7.11.1), tiebreaker-0000000002 (7.11.1)]
  11. 完全なインデックスの再作成を実行し、スペルチェックインデックスのインデックスも再作成します。

環境 - Elastic Stack 6.8.x

解決方法 - Elastic Stack 6.8.x

  1. 事前: デプロイメントのカスタマイズ画面で、必要な4つのアナライザープラグイン(analysis-icu, analysis-kuromoji, analysis-smartcn, analysis-stempel)が設定されていることを確認してください。
  2. デプロイメントの編集画面の elasticsearch.ymlユーザー設定のオーバーライド セクションに以下のプロパティを追加します。
    • cluster.indices.close.enable: true
  3. デプロイメント作成プロセスの最後にElastic Cloudから提供されるデプロイメント資格情報を保存します。
    • ユーザー名を指定します。 elasticです。
    • パスワードを指定します。 <password>2
  4. デプロイメントの概要ページから、 Elasticsearch Service デプロイメントエンドポイント をコピーします。 これに似たような感じになります。
  5. ストップライフレイDXP
  6. com.liferay.portal.search.elasticsearch6.config.ElasticsearchConfiguration.config in [Liferay-Home]/osgi/configs に以下の内容で作成します。
    • clusterName="5b8cfb0167c54ab4afb1bbd157471f77"
      operationMode="REMOTE"
      transportAddresses=["5b8cfb0167c54ab4afb1bbd157471f77.us-west1.gcp.cloud.es.io:9343"]
      clientTransportSniff=B"false"
    • clusterName: デプロイメント エンドポイントから来ています。
    • clientTransportSniff: スニッフィングは無効にしなければならない (ref.)
    • transportAddresses: この単一のトランスポートアドレス(Elasticsearch Endpointから導出できる)は、コネクタの設定で設定する必要がある唯一のものです。 "Elasticsearch Service上でホストされているデプロイメントはプロキシの背後にあり、トランスポートクライアントがElasticsearchクラスタと直接通信できないようになっている」 (ref.) 9343を忘れずに!
  7. com.liferay.portal.search.elasticsearch6.xpack.security.internal.config.XPackSecurityConfiguration.config[Liferay-Home]/osgi/configs に以下の内容で作成します。
    • certificateFormat="PKCS#12"
      sslKeystorePath=""
      sslKeystorePassword=""
      sslTruststorePath="/home/tibusz/liferay/bundles/cacerts.p12"
      sslTruststorePassword="changeit"
      requiresAuthentication=B"true"
      username="elastic"
      password="<password>"
      transportSSLVerificationMode="certificate"
      transportSSLEnabled=B"true"
    • sslTruststorePath:あなたはJDKのデフォルトからすべてのエントリをエクスポートすることができます のcacerts :次のコマンドを使用して、PKCS#12ファイルにファイル のkeytool -importkeystore -srckeystore / PATH / TO / JDK / cacertsに -srcstorepass changeitと-destkeystore / PATH /TO/cacerts.p12 -deststoretype PKCS12 -storepass changeit
    • セキュリティ関連の制限 も参照してください。
  8. Liferay Enterprise Search Security が以前にデプロイされていない場合は、LPKGファイルをダウンロードして [Liferay-Home]/osgi/marketplaceに配置してください。/osgi/marketplace
  9. Liferay DXPを起動します。
  10. コントロールパネルの検索管理者に移動し、接続情報を確認します
    • DXP 7.2の場合: すべてが正常に機能している場合は、次のように表示されます。
      • Search Engine Vendor: Elasticsearch, Client Version: 6.8.6, Nodes: 5b8cfb0167c54ab4afb1bbd157471f77: [instance-0000000001 (6.8.10), instance-0000000000 (6.8.10), tiebreaker-0000000002 (6.8.10)]
    • DXP 7.3の場合: [接続]タブに移動し、[アクティブな接続]セクションを確認します。
      • DXP-7.3-with-ES-on-EC-Connections.png
  11. 完全な再インデックス化を行い、スペルチェックインデックスも再インデックス化します。

エンタープライズ検索監視/X-Pack監視の設定

Kibanaサービスはなどの必要なユーザー設定をサポートしていないため、ホストされているKibanaに接続するように Liferay Enterprise Search Monitoring を構成することはできません。 server.basePath および server.rewriteBasePath

トラブルシューティング

サーバーの証明書のダウンロードとインポート

通常は、アズール、AWSとGCPで、サーバの証明書は、このようにCAを信頼し、あなたのJDKのデフォルトによって署名されている のcacerts ファイルが十分でなければなりません。 接続の問題(NoNodeAvailableExceptionなど)が発生した場合は、サーバーの証明書を取得してインポートし、DXPのコネクタ構成で使用してみてください。

  1. Elasticsearchデプロイメントの証明書をダウンロードしてインポートします
    1. サーバーの証明書をPEM形式でダウンロードします(たとえば、ブラウザーのHTTPS接続検査ツールを使用するか、 opensslを使用します)。
      • openssl s_client -connect 5b8cfb0167c54ab4afb1bbd157471f77.us-west1.gcp.cloud.es.io:9243 -showcerts
      • サーバーのためのベース64符号化されたテキスト gcp.cloud.es.io の間(「----- CERTIFICATE ----- BEGIN及び」 「----- END証明書- ---“)は対象の証明書です。
    2. ファイルに証明書のテキストをコピー server.pem
    3. クライアントの(LiferayのDXP)にサーバーの証明書をインポート PKCS#12 (フォーマット信頼ストア弾certificates.p12あなたはすでにこれを作成していると仮定すると、):
      keytool -importcert -keystore elastic-certificates.p12 -storepass <password> -alias <preferred-alias> -file server.pem
  2. この.p12ファイルを使用するようにコネクタ構成を更新します。

ElasticCloudの制限

ElasticsearchとKibanaのすべての機能と構成がElasticCloudでサポートされているわけではありません。 詳細については、以下の記事を参照してください。

https://www.elastic.co/guide/en/cloud/current/ec-restrictions.html

クラウドプロバイダーの制限

選択したクラウドプロバイダーとサブスクリプション方法によっては、ElasticsearchServiceのデプロイメントに追加の制限が適用される場合があります。 影響を受ける機能については、次のリソースを参照してください。


参照してください この記事で LiferayのDXPために利用可能なElasticsearchコネクタの技術的な概要について。

*括弧内のパッチレベルとマーケットプレイスのバージョンは、この記事の作成に使用されたバージョンを示しています。 他の互換性のある環境については、互換性マトリックスを確認してください。

**この記事では、Elastic Cloudのテストは、デプロイのカスタマイズ画面でGoogle Cloud Platformと4つの必要なアナライザープラグイン(analysis-icu、analysis-kuromoji、analysis-smartcn、analysis-stempel)を使用して実施されました。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています