Elasticsearch
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

演習:Dockerを使用してLiferay とElasticsearchを実行する

Liferay DXP 7.3+

ここでは、ローカル マシン上で最小限の Liferay-Elasticsearch セットアップを順に見ていき、Elasticsearch と Liferay 間の安全な REST クライアント 接続がどのように構成されるかを確認できます。 この例では、ElasticsearchコンテナとLiferayコンテナの2つのDockerコンテナを使用します。 より概念的かつ実践的な情報については、 Elasticsearch のインストール を参照してください。

Dockerコンテナにバインドマウントするためのローカルフォルダを作成する

ElasticsearchおよびLiferayコンテナのシステムフォルダにバインドマウントできるローカルフォルダを作成し、プラグインや設定ファイルをそこに配置します。 Elasticsearchはマウントされたフォルダに書き込む必要があるため、以下のmkdirコマンドには-m a+w修飾子をつけています。 システムに適用される適切な権限を理解し、適用する必要があります。

mkdir -p test-es-install/dxp/files/osgi/configs && mkdir -p test-es-install/elasticsearch -m a+w && cd test-es-install
ヒント

最後にある cd test-es-install コマンドを実行すると、 test-es-install フォルダーに移動します。 ElasticsearchとLiferayの両方について、残りのコマンドをこのフォルダから実行してください。

Elasticsearch をインストール

  1. elasticsearch という名前の Elasticsearch コンテナを設定して起動します。

    docker run -it --name elasticsearch -m 1g -p 9200:9200 -e "discovery.type=single-node" -e "node.name=es-node1" -v $(pwd)/elasticsearch:/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:8.11.4
    

    起動すると、重要なセキュリティ情報を含むログメッセージが出力されます。

    Elasticsearchが起動し、ログに役立つ情報を出力します。

  2. Elastic ユーザーのパスワードをローカルにコピーしてください。

  3. キーストアのパスワードを取得します。 新しいターミナルウィンドウを開き、新しいコンテナ上で対話型シェルを開きます。

    docker exec -it elasticsearch /bin/bash
    
  4. コマンドラインにパスワードを表示するには、 ./bin/elasticsearch-keystore を使用してください。

    ./bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password
    

    キーストアのパスワードをローカルにコピーしてください。

  5. 必要なElasticsearchプラグインをインストールしてください。

    ./bin/elasticsearch-plugin install analysis-icu && /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji && /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-smartcn && /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-stempel
    
  6. プラグインがインストールされたら、 exit と入力してシェルを終了します。

  7. Elasticsearchコンテナを再起動して、プラグインを登録します。 Ctrl+Cを押すとコンテナが停止します。 再度起動するには、以下を実行してください。

    docker start -i elasticsearch
    
  8. Elasticsearchは初回起動時に、LiferayとのHTTP接続を暗号化するために必要なセキュリティ証明書を作成します。 実行中のコンテナから certs フォルダを test-es-install/dxp/files/ フォルダにコピーします。

    docker cp elasticsearch:/usr/share/elasticsearch/config/certs/ dxp/files/
    
  9. DockerはこれらのファイルをLiferayコンテナにコピーする必要があり、Liferayはこれらのファイルから読み込む必要があるため、ファイルのアクセス許可が適切であることを確認してください。

    chmod -R a+rwx dxp/files/certs/
    

    これはローカルテスト専用です。 ご自身のシステムに適した権限設定になっているか、理解し、確認する必要があります。

  10. Liferayの設定で参照できるように、 elasticsearch コンテナのIPv4アドレスを取得します。

    docker network inspect bridge
    

    IPv4アドレスをローカルにコピーします。

Liferayをインストールする

LiferayがElasticsearchに接続するために必要なプロパティを指定し、その後Liferayコンテナを実行します。

  1. まず、Elasticsearchの設定ファイルにデータを入力します。 お使いのバージョンに適したファイル(例えば、com.liferay.portal.search.elasticsearch8.configuration.ElasticsearchConfiguration.config)を作成します:

    touch dxp/files/osgi/configs/com.liferay.portal.search.elasticsearch8.configuration.ElasticsearchConfiguration.config
    
  2. ファイルを開き、以下の内容を入力します。 passwordtruststorePassword を Elasticsearch からコピーしたものに置き換え、 elasticsearch コンテナの IPv4 が異なる場合は、 networkHostAddresses プロパティに挿入します。

    password="[ELASTIC_PASS]"
    truststorePassword="[KEYSTORE_PASS]"
    networkHostAddresses="https://172.17.0.2:9200"
    
    authenticationEnabled=B"true"
    httpSSLEnabled=B"true"
    logExceptionsOnly="false"
    productionModeEnabled=B"true"
    truststorePath="/opt/liferay/certs/http.p12"
    truststoreType="pkcs12"
    username="elastic"
    

    ファイルを保存して終了します。

  3. これでセキュリティ証明書ファイルと設定ファイルが所定の位置に配置されました。 それらは、Liferay Dockerコンテナが読み取ることができるホストシステムのフォルダに追加されました(test-es-install/dxp/files)。 Liferayコンテナを起動します。

    docker run -it --memory 9g --name liferay --publish 8080:8080 --volume $(pwd)/dxp:/mnt/liferay liferay/portal:7.4.3.132-ga132
    

    Liferay 7.3 を使用している場合は、上記のコマンドのバージョンを置き換えてください。

  4. チェックポイント: [コントロールパネル] → [設定] → [検索機能]でElasticsearch接続が有効になっていることを確認します。

    有効な接続が[検索機能]管理パネルに表示されます。

検索インデックスとスペルチェックインデックスを再構築してください。 どちらの再インデックス操作も、コントロールパネル → 設定 → 検索の [インデックス操作] タブから実行できます。

練習ファイルの整理

この演習で作成されたすべてのアイテムをクリーンアップするには、まずコンテナを停止し、次に

  1. Dockerコンテナを削除します。

    docker container rm elasticsearch liferay
    
  2. フォルダ構造を削除します。 まず、テストインストールフォルダの親ディレクトリ(つまり、 ../test-es-install)にいることを確認してから、実行してください。

    rm -fr test-es-install
    

これにより、コンテナを作成するために使用したDockerイメージのみが残ります。 必要に応じて、 docker image rm [image-name] コマンドでそれらを削除できます。