Documentation

Elasticsearchのインストール

オンプレミスでElasticsearchをインストール、設定、起動する方法は次のとおりです。

重要

Liferay 7.3にバンドルされているSidecar Elasticsearchサーバは、Elasticsearch OSSディストリビューションを使用しています。 OSS版を本番用にインストールしないでください。 LiferayをElasticsearchで安全に運用するためには、最低でもElasticsearchのBasicレベルをインストールする必要があります。 詳しくは Elasticのサブスクリプションページ をご覧ください。

注釈

一次データの保存(データベースにバックアップされていないデータの保存)に使用されているElasticsearchインデックスがある場合は、snapshot and restore approach . Liferay独自の検索の調整インデックス(結果ランキングとSynyonyms用)は、プライマリーストレージのインデックスです。

本番環境のようなインストールのための環境設定

ホストの追加

localhostまたはDockerコンテナを使用してテスト環境をセットアップする場合は、これをスキップできます。 ローカルマシンで本番環境のようにセットアップするには、LiferayとElasticsearchクラスターのホストを追加します。 お使いのオペレーティングシステムのpath/to/etc/hostsファイルに次の情報を追加します。

<your IP> es-node1
<your IP> es-node2
<your IP> es-node3
<your IP> dxp.liferay.com

ループバックアドレス127.0.0.1ではなく、システムの実際のIPアドレスを使用してください。

mmapの調整

Elasticsearchは、ほとんどのオペレーティングシステムのデフォルトよりも多くの mmapカウント を必要とします(インデックスを保持するディレクトリをメモリにマッピングするため)。 Linuxでは、rootユーザーとして、次のように実行します。

sysctl -w vm.max_map_count=262144

Elasticsearchのインストール

  1. ElasticのWebサイト からElasticsearchアーカイブ(OSSバージョンではない)をダウンロードします。

    重要

    お使いのLiferayのバージョンと互換性のある 最新のElasticsearchアーカイブをダウンロードしてください.

  2. Elasticsearchを実行するローカルフォルダにアーカイブの内容を展開します。 このフォルダが Elasticsearchホーム です。

  3. [Elasticsearch Home]/binフォルダで次のコマンドを実行して、必要なElasticsearchプラグインをインストールします。

    ./elasticsearch-plugin install analysis-icu
    
    ./elasticsearch-plugin install analysis-kuromoji
    
    ./elasticsearch-plugin install analysis-smartcn
    
    ./elasticsearch-plugin install analysis-stempel
    

Elasticsearchの設定

各Elasticsearchサーバは、[Elasticsearch Home]/config/elasticsearch.ymlファイルによって設定されます。

シングルノードおよびマルチノードのElasticsearchクラスター構成の例を次に示します。

Elasticsearch サーバーとの通信の認証と暗号化については、 Elasticsearchの保護 を参照してください。

例:シングルノードの本番環境Elasticsearchクラスター

以下は、シングルノードクラスターのelasticsearch.yml構成です。

cluster.name: LiferayElasticsearchCluster

discovery.type: single-node
discovery.seed_hosts:
  - es-node1:9300
http.port: 9200
network.host: es-node1
node.name: es-node1
transport.port: 9300

# Additional security settings 

LiferayElasticsearchClusterと呼ばれるこのクラスターには、es-node1と呼ばれるノードが1つあります。

ちなみに

プロダクションモードのセットアップでホストを設定しない場合は、ホストの値として localhost を使用してください。 Elasticsearchは、HTTPとTransportの通信のためにループバックアドレスにバインドすることができます。 シングルノードの発見とともに、これはElasticsearchサーバーが「開発モード」で動作していることを意味します。

例:マルチノード本番環境Elasticsearchクラスター

以下は、3ノードクラスターのes-node3と呼ばれるノードのelasticsearch.ymlです。

cluster.name: LiferayElasticsearchCluster

# Example production mode settings - 3-node cluster
cluster.initial_master_nodes:
  - es-node1
  - es-node2
  - es-node3
discovery.seed_hosts:
  - es-node1:9300
  - es-node2:9301
  - es-node3:9302
http.port: 9202
network.host: es-node3
node.name: es-node3
transport.port: 9302

# Add security settings here

ちなみに

プロダクションモードのセットアップでホストを設定しない場合は、ホストの値として localhost を使用してください。 Elasticsearchは、HTTPとTransportの通信のためにループバックアドレスにバインドすることができます。 これは「開発モード」と呼ばれています。

関連するElasticsearchのドキュメントです。

重要

各Elasticsearchノードの elasticsearch.yml ファイルは、以下のプロパティに固有の値を使用する必要があります。

  • node.name

  • http.port

  • network.host

  • transport.port

本番環境モードで単一サーバーのブートストラップチェックを実施する

Elasticsearch ブートストラップチェック では、起動時に構成を検査し、構成が欠落しているか疑わしい場合は警告をログに記録します。 本番環境では、構成ミスの際に起動を停止するようにブートストラップチェックを設定する必要があります。

シングルノードクラスターでブートストラップチェックを実施するには、次のプロパティをノードの[Elasticsearch Home]/config/jvm.optionsファイルの最後に追加します。

-Des.enforce.bootstrap.checks=true

Elasticsearchの起動

binフォルダからElasticsearchを起動します。

./elasticsearch

Elasticが起動したら、ステータスメッセージに下記のようなトランスポートアドレスが記載されます。

[2019-04-01T16:55:50,127][INFO ][o.e.t.TransportService   ] [HfkqdKv] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}

Liferay 7.2を実行している場合は、TransportServiceステータスメッセージのpublish_addressアドレスをメモしてください。 このアドレスでElasticsearchに接続するようにLiferayサーバーを設定する必要があります。

ElasticsearchはLiferayからの接続の準備ができています。

本番環境で実行している場合は、LiferayとElasticsearch間の通信を保護します