Elasticsearchのインストール
オンプレミスでElasticsearchをインストール、設定、起動する方法は次のとおりです。
Elasticsearchのインデックスをプライマリデータストレージとして使用している場合(データベースによってバックアップされていないデータを保存)、Elasticsearchのバックアップ を使用してそのデータを新しいElasticsearchクラスタに取り込むことが可能です。 Liferay独自の検索の調整インデックス(結果ランキングとSynyonyms用)は、Liferay DXP7.2と7.3のプライマリーストレージのインデックスです。
本番環境のようなインストールのための環境設定
ホストの追加
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 8では、LiferayとElasticsearchの間にファイアウォールやプロキシがある場合、Liferayが各リクエストで設定する互換性のあるHTTPヘッダーがネットワークトラフィックで許可され、保存されることを確認してください。 詳しくは Elasticsearch’s Requesting REST API Compatibility をご覧ください。
Elasticsearchのインストール
-
Elasticsearch アーカイブを Elastic のウェブサイト からダウンロードする。
importantお使いのLiferayのバージョンと互換性のある 最新のElasticsearchアーカイブをダウンロードしてください。
-
Elasticsearchを実行するローカルフォルダにアーカイブの内容を展開します。 このフォルダが Elasticsearchホーム です。
-
[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
http.port: 9200
network.host: es-node1
node.name: es-node1
transport.port: 9300
# Add security settings below
xpack.security.enabled: false
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 below
xpack.security.enabled: false
プロダクションモードのセットアップでホストを設定しない場合は、ホストの値として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
ログに「Elasticsearch exited unexpectedly」というERRORメッセージが表示され、Elasticsearchが起動できない場合は、ヒープサイズを増やしてください。 テスト中に、config/jvm.options
ファイルを開き、-Xms4g
と -Xmx4g
の設定例のコメントを外すことができる。 本番では、そのファイルの指示に従って、これらのパラメーターを適切に設定してください。
詳しくは 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間の通信を保護します。