Fess 11.4.4をAWSのEC2(RHEL 7.2)へインストール
目次
概要
AWSのEC2インスタンス上にFessを利用した全文検索サーバを構築します。 Googleのように設定したウェブサイトをクロールし、任意のキーワードで検索し、 ヒットしたページを表示するというおなじみの機能です。 FessはJavaで開発されたソフトウェアであるため、JDKの導入が必要となります。 また、Fessのコア機能である検索エンジンにElasticsearchという別のソフトウェアを利用しています。 そのため、Fessに先立ってElasticsearchの導入が必要となります。 今回は製品のインストールとWebブラウザによる接続確認を行うところまでの手順をまとめます。
構成
想定環境
AWS(Amazon Web Services)のEC2インスタンスを準備し、Fessをインストールました。 参考までに、サーバのスペックは以下のとおりです。
項目 | 内容 |
---|---|
インスタンスタイプ | t2.micro |
vCPU | 1 |
メモリ | 1GB |
ディスク | SSD 10GiB |
リージョン | 日本 |
ただし、FessとElasticsearchのJVMが合計で1.5GBのJavaヒープメモリを使用するため、1GBメモリでは足りません。 そこで事前に2GBのスワップファイルを作成したうえで、以下の作業を行いました。 AWSの利用料を抑えるためにややめんどくさいことをしましたが、単純にEC2のインスタンスタイプをt2.mediumにすることで解決する方が簡単かと思います。
サーバ構成
OSバージョン
Red Hat Enterprise Linux 7.4 x86_64
ソフトウェア・パッケージ一覧
- jdk-8u152-linux-x64.rpm
- elasticsearch-5.6.1.rpm
- fess-11.4.4.rpm
クライアント構成
OSバージョン
Windows 10 Pro 64bit
ソフトウェア・パッケージ一覧
- Microsoft Edge 40.15063.674.0
環境構築
インストール
wgetのインストール
Fessのインストールモジュールをサーバにダウンロードするためのツールとして、wgetをインストールします。
$ sudo su - # yum install -y wget Loaded plugins: amazon-id, rhui-lb, search-disabled-repos rhui-REGION-client-config-server-7 | 2.9 kB 00:00:00 https://rhui2-cds02.ap-northeast-1.aws.ce.redhat.com/pulp/repos//content/dist/rhel/rhui/server/7/7Server/x86_64/os/repodata/repomd.xml: [Errno 14] HTTPS Error 401 - Unauthorized Trying other mirror. rhui-REGION-rhel-server-releases | 3.5 kB 00:00:00 rhui-REGION-rhel-server-rh-common | 3.8 kB 00:00:00 (1/7): rhui-REGION-rhel-server-releases/7Server/x86_64/group | 709 kB 00:00:00 (2/7): rhui-REGION-client-config-server-7/x86_64/primary_db | 1.2 kB 00:00:00 (3/7): rhui-REGION-rhel-server-releases/7Server/x86_64/updateinfo | 2.4 MB 00:00:00 (4/7): rhui-REGION-rhel-server-rh-common/7Server/x86_64/group | 104 B 00:00:00 (5/7): rhui-REGION-rhel-server-rh-common/7Server/x86_64/updateinfo | 32 kB 00:00:00 (6/7): rhui-REGION-rhel-server-rh-common/7Server/x86_64/primary_db | 119 kB 00:00:00 (7/7): rhui-REGION-rhel-server-releases/7Server/x86_64/primary_db | 44 MB 00:00:00 Resolving Dependencies --> Running transaction check ---> Package wget.x86_64 0:1.14-15.el7_4.1 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================== Package Arch Version Repository Size ======================================================================================================================== Installing: wget x86_64 1.14-15.el7_4.1 rhui-REGION-rhel-server-releases 547 k Transaction Summary ======================================================================================================================== Install 1 Package Total download size: 547 k Installed size: 2.0 M Downloading packages: wget-1.14-15.el7_4.1.x86_64.rpm | 547 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : wget-1.14-15.el7_4.1.x86_64 1/1 Verifying : wget-1.14-15.el7_4.1.x86_64 1/1 Installed: wget.x86_64 0:1.14-15.el7_4.1 Complete!
Oracle JDKのダウンロード
Fessのインストール要件である「Java 8u20以上のバージョン」を満たすため、 Oracle JDK 8の最新バージョン(2017年12月3日時点)をダウンロードします。
# cd /media/ # mkdir installer # cd /media/installer/ ←ここにインストールモジュールをダウンロードする # wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-linux-x64.rpm" --2017-12-02 17:41:22-- http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-linux-x64.rpm Resolving download.oracle.com (download.oracle.com)... 23.44.174.249, 23.44.174.243 Connecting to download.oracle.com (download.oracle.com)|23.44.174.249|:80... connected. HTTP request sent, awaiting response... 302 Moved Temporarily Location: https://edelivery.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-linux-x64.rpm [following] --2017-12-02 17:41:22-- https://edelivery.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-linux-x64.rpm Resolving edelivery.oracle.com (edelivery.oracle.com)... 104.71.161.181, 2600:140b:7000:3b3::2d3e, 2600:140b:7000:380::2d3e Connecting to edelivery.oracle.com (edelivery.oracle.com)|104.71.161.181|:443... connected. HTTP request sent, awaiting response... 302 Moved Temporarily Location: http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-linux-x64.rpm?AuthParam=1512236602_2bd8d26750b9c21e2f444ed0273f7592 [following] --2017-12-02 17:41:22-- http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-linux-x64.rpm?AuthParam=1512236602_2bd8d26750b9c21e2f444ed0273f7592 Connecting to download.oracle.com (download.oracle.com)|23.44.174.249|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 174192082 (166M) [application/x-redhat-package-manager] Saving to: ‘jdk-8u152-linux-x64.rpm’ 100%[==============================================================================>] 174,192,082 7.00MB/s in 23s 2017-12-02 17:41:46 (7.21 MB/s) - ‘jdk-8u152-linux-x64.rpm’ saved [174192082/174192082] # ls -l total 170112 -rw-r--r-- 1 root root 174192082 Oct 9 22:05 jdk-8u152-linux-x64.rpm ←ダウンロードしたファイル
Elasticsearchのダウンロード
Fessの検索エンジンにはElasticsearchが利用されています。 そのため、インストール要件としてElasticsearchが挙げられています。 2016年12月3日時点ではElasticsearch 6.0.0が最新ですが、Fessのインストール要件では「Elasticsearch 5.6.1」が指定されているので、 指定されたバージョンをダウンロードします。
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.1.rpm
--2017-12-02 17:42:55-- https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.1.rpm
Resolving artifacts.elastic.co (artifacts.elastic.co)... 54.225.188.6, 54.235.82.130, 54.243.108.41, ...
Connecting to artifacts.elastic.co (artifacts.elastic.co)|54.225.188.6|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 33666459 (32M) [application/octet-stream]
Saving to: ‘elasticsearch-5.6.1.rpm’
100%[==============================================================================>] 33,666,459 8.65MB/s in 4.6s
2017-12-02 17:43:01 (7.04 MB/s) - ‘elasticsearch-5.6.1.rpm’ saved [33666459/33666459]
# ls -l
total 202992
-rw-r--r-- 1 root root 33666459 Sep 18 21:03 elasticsearch-5.6.1.rpm ←ダウンロードしたファイル
-rw-r--r-- 1 root root 174192082 Oct 9 22:05 jdk-8u152-linux-x64.rpm
Fessのダウンロード
Fessは2017年12月3日時点で最新のバージョン11.4.4をダウンロードします。
# wget https://github.com/codelibs/fess/releases/download/fess-11.4.4/fess-11.4.4.rpm
--2017-12-02 17:44:39-- https://github.com/codelibs/fess/releases/download/fess-11.4.4/fess-11.4.4.rpm
Resolving github.com (github.com)... 192.30.255.113, 192.30.255.112
Connecting to github.com (github.com)|192.30.255.113|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/12801725/074824c0-cbee-11e7-9c90-322a17a2a504?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20171202%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20171202T174440Z&X-Amz-Expires=300&X-Amz-Signature=ee4d7ef607cffc9ad8469b10706da590d5c09447ce6969404a4064e25dd9a225&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dfess-11.4.4.rpm&response-content-type=application%2Foctet-stream [following]
--2017-12-02 17:44:40-- https://github-production-release-asset-2e65be.s3.amazonaws.com/12801725/074824c0-cbee-11e7-9c90-322a17a2a504?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20171202%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20171202T174440Z&X-Amz-Expires=300&X-Amz-Signature=ee4d7ef607cffc9ad8469b10706da590d5c09447ce6969404a4064e25dd9a225&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dfess-11.4.4.rpm&response-content-type=application%2Foctet-stream
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.216.230.19
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.230.19|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 126663414 (121M) [application/octet-stream]
Saving to: ‘fess-11.4.4.rpm’
100%[==============================================================================>] 126,663,414 8.19MB/s in 21s
2017-12-02 17:45:02 (5.75 MB/s) - ‘fess-11.4.4.rpm’ saved [126663414/126663414]
# ls -l
total 326688
-rw-r--r-- 1 root root 33666459 Sep 18 21:03 elasticsearch-5.6.1.rpm
-rw-r--r-- 1 root root 126663414 Nov 17 14:21 fess-11.4.4.rpm ←ダウンロードしたファイル
-rw-r--r-- 1 root root 174192082 Oct 9 22:05 jdk-8u152-linux-x64.rpm
Oracle JDKのインストール
wgetでダウンロードしたOracle JDKのRPMパッケージをインストールします。
# rpm -ihv jdk-8u152-linux-x64.rpm Preparing... ################################# [100%] Updating / installing... 1:jdk1.8-2000:1.8.0_152-fcs ################################# [100%] Unpacking JAR files... tools.jar... plugin.jar... javaws.jar... deploy.jar... rt.jar... jsse.jar... charsets.jar... localedata.jar...
Elasticsearchのインストール
wgetでダウンロードしたElasticsearchのRPMパッケージをインストールします。
# rpm -ihv elasticsearch-5.6.1.rpm warning: elasticsearch-5.6.1.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY Preparing... ################################# [100%] Creating elasticsearch group... OK Creating elasticsearch user... OK Updating / installing... 1:elasticsearch-0:5.6.1-1 ################################# [100%] ### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service ### You can start elasticsearch service by executing sudo systemctl start elasticsearch.service
ElasticsearchとFessの連携設定
ElasticsearchとFessを連携させるための設定を追加します。
# cd /etc/elasticsearch/ # vi elasticsearch.yml
※ファイルの末尾に追加※
configsync.config_path: /var/lib/elasticsearch/config
Fessのインストール
wgetでダウンロードしたFessのRPMパッケージをインストールします。
# cd /media/installer/ # rpm -ihv fess-11.4.4.rpm Preparing... ################################# [100%] Creating fess group... OK Creating fess user... OK Updating / installing... 1:fess-11.4.4-1 ################################# [100%] ### NOT starting on installation, please execute the following statements to configure fess service to start automatically using systemd sudo systemctl daemon-reload sudo systemctl enable fess.service ### You can start fess service by executing sudo systemctl start fess.service
ElasticsearchのFess用機能拡張プラグインのインストール
ElasticsearchのFess用機能拡張プラグインをインストールします。 インストールに使用するのはElasticsearchのプラグインインストールシェルです。
# cd /usr/share/elasticsearch/bin/ # ./elasticsearch-plugin install org.codelibs:elasticsearch-analysis-fess:5.6.2 -> Downloading org.codelibs:elasticsearch-analysis-fess:5.6.2 from maven central [=================================================] 100%?? @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: plugin requires additional permissions @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ * java.lang.RuntimePermission accessDeclaredMembers * java.lang.RuntimePermission getClassLoader * java.lang.reflect.ReflectPermission suppressAccessChecks See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html for descriptions of what these permissions allow and the associated risks. Continue with installation? [y/N]y -> Installed analysis-fess # ./elasticsearch-plugin install org.codelibs:elasticsearch-analysis-ja:5.6.1 -> Downloading org.codelibs:elasticsearch-analysis-ja:5.6.1 from maven central [=================================================] 100%?? @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: plugin requires additional permissions @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ * java.lang.RuntimePermission accessDeclaredMembers * java.lang.RuntimePermission getClassLoader * java.lang.reflect.ReflectPermission suppressAccessChecks See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html for descriptions of what these permissions allow and the associated risks. Continue with installation? [y/N]y -> Installed analysis-ja # ./elasticsearch-plugin install org.codelibs:elasticsearch-analysis-synonym:5.6.1 -> Downloading org.codelibs:elasticsearch-analysis-synonym:5.6.1 from maven central [=================================================] 100%?? -> Installed analysis-synonym # ./elasticsearch-plugin install org.codelibs:elasticsearch-configsync:5.6.1 -> Downloading org.codelibs:elasticsearch-configsync:5.6.1 from maven central [=================================================] 100%?? @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: plugin requires additional permissions @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ * java.io.FilePermission <<ALL FILES>> read,write See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html for descriptions of what these permissions allow and the associated risks. Continue with installation? [y/N]y -> Installed configsync # ./elasticsearch-plugin install org.codelibs:elasticsearch-dataformat:5.6.1 -> Downloading org.codelibs:elasticsearch-dataformat:5.6.1 from maven central [=================================================] 100%?? @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: plugin requires additional permissions @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ * java.lang.RuntimePermission getClassLoader See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html for descriptions of what these permissions allow and the associated risks. Continue with installation? [y/N]y -> Installed dataformat # ./elasticsearch-plugin install org.codelibs:elasticsearch-langfield:5.6.1 -> Downloading org.codelibs:elasticsearch-langfield:5.6.1 from maven central [=================================================] 100%?? @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: plugin requires additional permissions @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ * java.lang.RuntimePermission accessDeclaredMembers * java.lang.RuntimePermission getClassLoader * java.lang.reflect.ReflectPermission suppressAccessChecks See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html for descriptions of what these permissions allow and the associated risks. Continue with installation? [y/N]y -> Installed langfield # ./elasticsearch-plugin install org.codelibs:elasticsearch-minhash:5.6.1 -> Downloading org.codelibs:elasticsearch-minhash:5.6.1 from maven central [=================================================] 100%?? -> Installed minhash
設定
Systemdのサービスユニットファイル再読み込み
ElasticsearchとFessのインストールによってSystemdのサービスユニットファイルが追加されたので、 利用できるように再読み込みを行います。
# systemctl daemon-reload
Elasticsearchの自動起動設定
ElasticsearchのサービスをSystemdにより自動起動する設定を行います。
# systemctl status elasticsearch.service ● elasticsearch.service - Elasticsearch Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled) ←自動起動無効 Active: inactive (dead) ←サービス停止中 Docs: http://www.elastic.co # systemctl enable elasticsearch.service ←Elasticsearchの自動起動有効化 Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service. # systemctl status elasticsearch.service ● elasticsearch.service - Elasticsearch Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled) ←自動起動有効 Active: inactive (dead) ←サービス停止中 Docs: http://www.elastic.co
Fessの自動起動設定
FessのサービスをSystemdにより自動起動する設定を行います。
# systemctl status fess.service ● fess.service - Fess Loaded: loaded (/usr/lib/systemd/system/fess.service; disabled; vendor preset: disabled) ←自動起動無効 Active: inactive (dead) ←サービス停止中 Docs: http://fess.codelibs.org/ # systemctl enable fess.service ←Fessの自動起動有効化 Created symlink from /etc/systemd/system/multi-user.target.wants/fess.service to /usr/lib/systemd/system/fess.service. # systemctl status fess.service ● fess.service - Fess Loaded: loaded (/usr/lib/systemd/system/fess.service; enabled; vendor preset: disabled) ←自動起動有効 Active: inactive (dead) ←サービス停止中 Docs: http://fess.codelibs.org/
Elasticsearchの起動
一通り設定が完了しましたので、Elasticsearchのサービスを起動します。
# systemctl start elasticsearch.service ←Elasticsearchのサービス起動 # systemctl status elasticsearch.service ● elasticsearch.service - Elasticsearch Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled) ←自動起動有効 Active: active (running) since Sat 2017-12-02 18:02:03 UTC; 13s ago ←サービス起動中 Docs: http://www.elastic.co Process: 2079 ExecStartPre=/usr/share/elasticsearch/bin/elasticsearch-systemd-pre-exec (code=exited, status=0/SUCCESS) Main PID: 2080 (java) CGroup: /system.slice/elasticsearch.service mq2080 /bin/java -Xms2g -Xmx2g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSIn... Dec 02 18:02:03 ip-172-31-26-45.ap-northeast-1.compute.internal systemd[1]: Starting Elasticsearch... Dec 02 18:02:03 ip-172-31-26-45.ap-northeast-1.compute.internal systemd[1]: Started Elasticsearch.
Fessの起動
Elasticsearchに続いて、Fessのサービスを起動します。
# systemctl start fess.service ←Fessのサービス起動 # systemctl status fess.service ● fess.service - Fess Loaded: loaded (/usr/lib/systemd/system/fess.service; enabled; vendor preset: disabled) ←自動起動有効 Active: active (running) since Sat 2017-12-02 18:03:10 UTC; 5s ago ←サービス起動中 Docs: http://fess.codelibs.org/ Main PID: 2159 (java) CGroup: /system.slice/fess.service mq2159 /bin/java -Xms512m -Xmx512m -Djava.awt.headless=true -Djna.nosys=true -Djdk.io.permissionsUseCanoni... Dec 02 18:03:10 ip-172-31-26-45.ap-northeast-1.compute.internal systemd[1]: Started Fess. Dec 02 18:03:10 ip-172-31-26-45.ap-northeast-1.compute.internal systemd[1]: Starting Fess...
動作確認
Fessのサービスへ接続確認
インストールと設定が終わったら、ブラウザでFessのサービスに接続確認を行います。 ブラウザで以下のURLにアクセスします。
http://[FQDN]:8080
Fessの管理UIへ接続確認
ブラウザで以下のURLにアクセスします。 インストールで自動作成される管理アカウントのユーザ名は「admin」で、 初期パスワードは「admin」です。
http://[FQDN]:8080/admin