Fess 15.8.0/DEB環境でIndex作成不可

Fess 15.8.0をUbuntu環境へDEBパッケージでインストールしたところ、公式ドキュメントに記載された辞書パスではFessが起動できませんでした。

環境

  • Ubuntu 26.04.1

  • Fess 15.8.0(DEB)

  • OpenSearch 3.8.0(DEB)

  • Java 21

  • Fess用OpenSearchプラグイン:3.8.0

以下の公式手順を参照しました。

https://fess.codelibs.org/ja/15.8/install/install-linux.html

公式手順に従った設定

/etc/opensearch/opensearch.yml

configsync.config_path: /var/lib/opensearch/data/config/
plugins.security.disabled: true

/etc/default/fess

SEARCH_ENGINE_HTTP_URL=http://localhost:9200
FESS_DICTIONARY_PATH=/var/lib/opensearch/data/config/

OpenSearchは正常に起動し、クラスターヘルスもgreenでした。また、configsyncを含む必要なプラグインがインストールされていることも確認しました。

しかし、Fessへアクセスすると以下の状態になりました。

http://localhost:8080/ → HTTP 404

systemctl status fessではactive (running)と表示されますが、FessのWebアプリケーションは初期化に失敗していました。

Fessログ

/var/log/fess/fess.logに、次のエラーが記録されていました。

WARN Failed to create index: index=fess, path=fess_indices/fess.json

OpenSearchStatusException[
  OpenSearch exception [
    type=illegal_argument_exception,
    reason=Resource path must be inside config directory:
    /var/lib/opensearch/data/config/ja/mapping.txt
  ]
]

その後に表示されるIndexNotFoundExceptionは、作成に失敗した一時インデックスを後続処理が参照したことによる二次的なエラーでした。

IndexNotFoundException[
  no such index [fess.YYYYMMDDhhmmssSSS]
]

回避方法

OpenSearchのDEBパッケージでは、OPENSEARCH_PATH_CONFが/etc/opensearchに設定されています。

そこで辞書を/etc/opensearch配下へ移し、次のように変更しました。

/etc/opensearch/opensearch.yml

configsync.config_path: /etc/opensearch/dictionary/
plugins.security.disabled: true

/etc/default/fess

SEARCH_ENGINE_HTTP_URL=http://localhost:9200
FESS_DICTIONARY_PATH=/etc/opensearch/dictionary/

辞書ディレクトリは次のように用意しました。

sudo install -d \
  -o opensearch \
  -g opensearch \
  -m 0750 \
  /etc/opensearch/dictionary

sudo cp -a \
  /var/lib/opensearch/data/config/. \
  /etc/opensearch/dictionary/

sudo chown -R opensearch:opensearch \
  /etc/opensearch/dictionary

OpenSearch、Fessの順に再起動したところ、Fess関連のインデックスが正常に作成され、http://localhost:8080/からHTTP 200が返るようになりました。

HTTP 200

確認したいこと

OpenSearch 3.8.0のDEB/RPM環境では、次のパスを使用するのが正しい認識でしょうか。

/etc/opensearch/dictionary/

公式ドキュメントに記載されている次のパスは、OpenSearch 3.8.0のリソースパス検査と整合しないように見えます。

/var/lib/opensearch/data/config/

DEBだけでなく、同じくOPENSEARCH_PATH_CONF=/etc/opensearchを使用するRPM環境にも影響する可能性があると考えています。

公式手順の修正、または推奨設定についてご確認いただけますでしょうか。

ご指摘ありがとうございます。ドキュメントを修正しました。