Fess14のインストール

シナリオ

  1. ubuntu 22.04にFess14.xをインストール
  2. 事前にFess14.xに必要なJava17(OpenJDK)とElasticsearch8をインストールする
  3. その後Fess14.xをインストール

Java17(OpenJDK)のインストール

  • インストール
$ sudo apt install -y openjdk-17-jdk
  • バージョンの確認
$ java --version
openjdk 17.0.4 2022-07-19
OpenJDK Runtime Environment (build 17.0.4+8-Ubuntu-122.04)
OpenJDK 64-Bit Server VM (build 17.0.4+8-Ubuntu-122.04, mixed mode, sharing)

Elasticsearch8のインストール

  • PGPキーのインストール
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
  • リポジトリの保存
$ echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
  • パッケージ管理に反映
$ sudo apt update
  • Elasticsearch8のインストール
$ sudo apt install elasticsearch
  • インストール完了後下記赤字のpasswordを控えておく。後で設定時に使用する。 
--------------------------- Security autoconfiguration information ------------------------------

Authentication and authorization are enabled.
TLS for the transport and HTTP layers is enabled and configured.

The generated password for the elastic built-in superuser is : <ここの文字列を控える>

If this node should join an existing cluster, you can reconfigure this with
'/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token '
after creating an enrollment token on your existing cluster.

You can complete the following actions at any time:

Reset the password of the elastic built-in superuser with
'/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'.

Generate an enrollment token for Kibana instances with
 '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'.

Generate an enrollment token for Elasticsearch nodes with
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'.

-------------------------------------------------------------------------------------------------
  • 動作確認(サービス起動)
$ sudo systemctl start elasticsearch.service
  • ステータス確認 Active: active (running) になっていればOK
$ sudo systemctl status elasticsearch.service
 elasticsearch.service - Elasticsearch
     Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-08-27 01:20:40 JST; 1min 1s ago
~後略~

Fessのインストール

fess

この例ではfess-14.3.0.debをダウンロードする

  • ダウンロード ※下記赤字部分を適宜書き換える この例では14.3.0
$ wget https://github.com/codelibs/fess/releases/download/fess-14.3.0/fess-14.3.0.deb
  • ダウンロードできているか確認
$ ls -l
-rw-rw-r-- 1 hoge hoge 156108696 7月 23 11:08 fess-14.3.0.deb
  • Elasticsearchを止めておく
$ sudo systemctl stop elasticsearch.service
  • Elasticsearchのステータスを確認 Active: inactive (dead) になっていれば停止している
$ sudo systemctl status elasticsearch.service
○ elasticsearch.service - Elasticsearch
Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
Active: inactive (dead)
~後略~
  • プラグインをインストールするためElasticsearchのバージョンを確認する
$ sudo /usr/share/elasticsearch/bin/elasticsearch --version
Version: 8.4.0, Build: deb/f56126089ca4db89b631901ad7cce0a8e10e2fe5/2022-08-19T19:23:42.954591481Z, JVM: 18.0.2

  • プラグインをインストールする ※下記赤字部分を適宜書き換える この例では8.4.0.0
  • コマンド実行後 Continue with installation? [y/N] が表示した場合はyで応答する
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-analysis-fess:8.4.0.0
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-analysis-extension:8.4.0.0
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-minhash:8.4.0.0
  • インストールできているか確認 3つあればOK
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin list
analysis-extension
analysis-fess
minhash
  • ElasticsearchとFessを同期させるための設定 ※下記赤字部分を適宜書き換える この例では8.4.0.0
$ curl -o /tmp/configsync.zip https://repo1.maven.org/maven2/org/codelibs/elasticsearch-configsync/8.4.0.0/elasticsearch-configsync-8.4.0.0.zip
$ sudo mkdir -p /usr/share/elasticsearch/modules/configsync
$ sudo unzip -d /usr/share/elasticsearch/modules/configsync /tmp/configsync.zip
  • 内容確認 4行あればOK
$ ls -l /usr/share/elasticsearch/modules/configsync
-rw-r--r-- 1 root root 353793 11月 12 2020 commons-codec-1.15.jar
-rw-r--r-- 1 root root 51157 8月 25 07:19 elasticsearch-configsync-8.4.0.0.jar
-rw-r--r-- 1 root root 227 8月 25 07:17 plugin-descriptor.properties
-rw-r--r-- 1 root root 78 8月 25 07:17 plugin-security.policy
  • Elasticsearch設定ファイル:/etc/elasticsearch/elasticsearch.yml の最終行に下記を追加
configsync.config_path: /var/lib/elasticsearch/config 
  • Fessのインストール この例では14.3.0だが適宜書き換える
$ sudo dpkg -i fess-14.3.0.deb
  • /etc/fess/fess_config.propertiesの下記3ヶ所を変更する

  1. elasticsearch.http.ssl.certificate_authorities:CA証明書のファイルパス
  2. elasticsearch.username: Elasticsearchの接続ユーザ名 (elastic)
  3. elasticsearch.password: Elasticsearchの接続ユーザのパスワード
# Elasticsearch
elasticsearch.http.ssl.certificate_authorities=/etc/elasticsearch/certs/http_ca.crt
elasticsearch.username=elastic
elasticsearch.password=Elasticsearch8のインストールで控えたpassword
  • /usr/share/fess/bin/fess.in.shの下記2ヶ所を変更する

  1. ES_HTTP_URL: Elasticsearchのエンドポイント (https//localhost:9200)
  2. FESS_DICTIONARY_PATH: 辞書ディレクトリのパス (/var/lib/elasticsearch/config/)
# External elasticsearch cluster
ES_HTTP_URL=https://localhost:9200
FESS_DICTIONARY_PATH=/var/lib/elasticsearch/config/
  • fessユーザをelasticsearchグループに追加する。これをしないとFessブラウザアクセス時に404エラーになる。Fessサーバ起動時にCA証明書(http_ca.crt)がpermission deniedエラーになる。
$ sudo usermod -aG elasticsearch fess
  • ElasticsearchとFessをサービスに登録
$ sudo systemctl daemon-reload 
$ sudo systemctl enable elasticsearch.service
$ sudo systemctl enable fess.service

Fessの起動

  • 先に Elasticsearchが起動する必要がある
  • ※Fess、Elasticsearchを再起動する場合 Fess停止→Elasticsearch再起動→Fess起動の順番
$ sudo systemctl start elasticsearch.service
  • Elasticsearchのステータスを確認 Active: active (running) になっていればOK
$ sudo systemctl status elasticsearch.service
elasticsearch.service - Elasticsearch
Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-08-27 03:15:26 JST; 5min ago
~後略~
  • Fessの起動
$ sudo systemctl start fess.service
  • Fessのステータスを確認 Active: active (running) になっていればOK
$ sudo systemctl status fess.service
fess.service - Fess
Loaded: loaded (/lib/systemd/system/fess.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-08-27 03:27:00 JST; 1min 1s ago
~後略~

ブラウザでアクセス

  • 今回インストールしたサーバのIPアドレスは 10.0.0.5
  • http://10.0.0.5:8080 を開くと下記画面が表示する

Fess管理者のデフォルトパスワードを変更する

  • ログインから ID:admin PW:admin で入る
  • 新たなパスワードを設定する
  • 戻るボタンでトップ画面に戻る