FessはElasticsearchをバックエンド(検索エンジン)に持つ全文検索サーバ。今回は専用に用意したCentOS7のマシンにインストールした際のメモです。
使用したFessのバージョンは12.1.2で、Elasticsearch関連のバージョンも互換のものを選択する必要があります。
もくじ:
スクリプト
インストールの基本は公式のマニュアル通りです。
面倒なのでbashスクリプトにしました。
サービスとして自動起動するよう設定しているので、インストール完了後はマシンの起動時にサーバが立ち上がるはずです。
あまりよろしくはありませんがrootで作業しているので、他のユーザを使う場合はsudo
などで昇格が必要です。インストール用のバイナリ等を一時保存するためのディレクトリ($inst_tmp
)を作成しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #!/bin/bash -eu # use temporary directory for installation inst_tmp="/root/fess" mkdir -p $inst_tmp cd $inst_tmp # use JDK 8 yum install -y java-1.8.0-openjdk-devel # download Elasticsearch 6.2 and Fess 12.1 curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.1.rpm curl -OL https://github.com/codelibs/fess/releases/download/fess-12.1.2/fess-12.1.2.rpm # download ES plugins curl -O http://central.maven.org/maven2/org/codelibs/elasticsearch-analysis-fess/6.2.1/elasticsearch-analysis-fess-6.2.1.zip curl -O http://central.maven.org/maven2/org/codelibs/elasticsearch-analysis-ja/6.2.1/elasticsearch-analysis-ja-6.2.1.zip curl -O http://central.maven.org/maven2/org/codelibs/elasticsearch-analysis-synonym/6.2.1/elasticsearch-analysis-synonym-6.2.1.zip curl -O http://central.maven.org/maven2/org/codelibs/elasticsearch-configsync/6.2.1/elasticsearch-configsync-6.2.1.zip curl -O http://central.maven.org/maven2/org/codelibs/elasticsearch-dataformat/6.2.1/elasticsearch-dataformat-6.2.1.zip curl -O http://central.maven.org/maven2/org/codelibs/elasticsearch-langfield/6.2.1/elasticsearch-langfield-6.2.1.zip curl -O http://central.maven.org/maven2/org/codelibs/elasticsearch-minhash/6.2.1/elasticsearch-minhash-6.2.1.zip # install Elasticsearch rpm -ivh elasticsearch-6.2.1.rpm echo "configsync.config_path: /var/lib/elasticsearch/config" >> /etc/elasticsearch/elasticsearch.yml # install plugins offline /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch file://$inst_tmp/elasticsearch-analysis-fess-6.2.1.zip /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch file://$inst_tmp/elasticsearch-analysis-ja-6.2.1.zip /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch file://$inst_tmp/elasticsearch-analysis-synonym-6.2.1.zip /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch file://$inst_tmp/elasticsearch-configsync-6.2.1.zip /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch file://$inst_tmp/elasticsearch-dataformat-6.2.1.zip /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch file://$inst_tmp/elasticsearch-langfield-6.2.1.zip /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch file://$inst_tmp/elasticsearch-minhash-6.2.1.zip # install from Fess rpm rpm -ivh fess-12.1.2.rpm shfile="/usr/share/fess/bin/fess.in.sh" sed -i -e "s/^# ES_HTTP_URL/ES_HTTP_URL/g" $shfile sed -i -e "s/^# ES_TRANSPORT_URL=/ES_TRANSPORT_URL=/g" $shfile sed -i -e "s/^# FESS_DICTIONARY_PATH=/FESS_DICTIONARY_PATH=/g" $shfile # configure services systemctl daemon-reload systemctl enable elasticsearch.service systemctl enable fess.service # configure firewall firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload |
Fessを起動するには、マシンを再起動するか、もしくはいつものSystemd(systemctl
コマンド)を使いElasticsearch→Fessの順でサービスを起動します。
1 2 | $ systemctl start elasticsearch.service $ systemctl start fess.service |
インストール
上記のスクリプトの詳細を記載しておきます。環境に合わせて修正して下さい。
前提条件
Fessの前提となるJavaランタイムをインストールします。
1 | yum install -y java-1.8.0-openjdk-devel |
今回はファイヤウォールを使っているので、ない場合はインストールします。
1 | $ yum -y install firewalld |
ダウンロード
curl
コマンドを使ってパッケージ(RPM)類をダウンロードします。バージョンは必要なものを選ぶ必要がありますので注意。
プロキシがある環境でElasticsearchプラグインのオンラインインストールに躓いたので、今回はオフラインでインストールさせるためそちらもダウンロードしておきます。
1 2 | curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.1.rpm curl -OL ... |
Elasticsearchのセットアップ
ElasticsearchをRPMからインストールし、Fess連携のためYAMLファイルに設定を追加します。
1 2 | rpm -ivh elasticsearch-6.2.1.rpm echo "configsync.config_path: /var/lib/elasticsearch/config" >> /etc/elasticsearch/elasticsearch.yml |
Fess向けのプラグインをオフラインでインストールします。--batch
オプションはプラグインインストール実行時の確認プロンプトを抑止するためのものです。
1 2 | /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch file://$inst_tmp/elasticsearch-analysis-fess-6.2.1.zip ... |
Fessのインストール
FessをRPMからインストールし、起動スクリプトを変更します。
1 2 3 4 | rpm -ivh fess-12.1.2.rpm shfile="/usr/share/fess/bin/fess.in.sh" sed -i -e "s/^# ES_HTTP_URL/ES_HTTP_URL/g" $shfile ... |
また、外部からアクセスを許可するため、ファイヤウォールを設定しておきます。ポートはデフォルトでTCP8080番ですが、Fessの設定変更に応じて変えて下さい。
1 2 | firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload |
あとはElasticsearchとFessをサービスとして設定します。FessはElasticsearchに依存しているので手動で起動する際はElasticsearchのほうを先にします。
スペックによりますが、FessやElasticsearchの起動にはそれなりに時間がかかる場合があります。トップページにアクセスしても反応がないときはsystemctl status ...
コマンドを使って状態を確認するのも手ですね。
インストールが正常に完了したら、一時保存用のディレクトリは削除して構いません。
おわり。