このページでは、 Fess サーバーの起動、停止、および初回セットアップの手順について説明します。
重要
Fess を起動する前に、必ず OpenSearch を起動してください。 OpenSearch が起動していない場合、 Fess は正しく動作しません。
起動方法
インストール方法により、起動手順が異なります。
ZIP 版の場合
OpenSearch の起動
バックグラウンドで起動する場合:
注釈
bin/fess-setup install opensearch で導入した OpenSearch は、 Fess のディレクトリの opensearch/opensearch-3.9.0 にあります。
重要
OpenSearch は一般ユーザーで起動してください。 root で起動すると can not run opensearch as root と表示して終了します。拒否された起動でも config/opensearch.keystore などのファイルが root の所有で残り、次に一般ユーザーで起動すると AccessDeniedException で失敗します。再度起動する前に、OpenSearch のディレクトリの所有者をそのユーザーに戻してください。例:
Fess の起動
バックグラウンドで起動する場合:
注釈
起動には数分かかる場合があります。 logs/ ディレクトリのログファイルで起動状況を確認できます。Fess 本体のメッセージは fess.log、組み込み Tomcat のメッセージ(起動完了メッセージを含む)は server_0.log に出力されます。
ZIP 版の場合(Windows)
OpenSearch の起動
OpenSearch のインストールディレクトリを開きます
binフォルダー内のopensearch.batをダブルクリックします
または、コマンドプロンプトから:
Fess の起動
Fess のインストールディレクトリを開きます
binフォルダー内のfess.batをダブルクリックします
または、コマンドプロンプトから:
RPM/DEB 版の場合 (chkconfig)
OpenSearch の起動:
Fess の起動:
起動状態の確認:
RPM/DEB 版の場合 (systemd)
OpenSearch の起動:
Fess の起動:
起動状態の確認:
サービスの自動起動を有効化:
Docker 版の場合
注釈
compose.yaml および compose-opensearch3.yaml は、Fess 本体には 含まれていません。これらは docker-fess プロジェクト (https://github.com/codelibs/docker-fess)で提供されており、リポジトリを 取得した上で compose ディレクトリ内で以下のコマンドを実行します。
Docker Compose を使用して起動:
起動状態の確認:
ログの確認:
起動の確認
Fess が正常に起動したことを確認します。
ヘルスチェック
ブラウザーまたは curl コマンドで以下の URL にアクセスします:
正常に起動している場合、Fess の検索画面が表示されます。
コマンドラインでの確認:
HTTP/1.1 200 OK が返ってくれば、正常に起動しています。
ログの確認
起動ログを確認して、エラーがないことを確認します。
ZIP 版:
RPM/DEB 版:
または journalctl を使用:
Docker 版:
Tip
正常に起動した場合、以下のような起動完了メッセージがログディレクトリ(ZIP 版は logs/、 RPM/DEB 版は /var/log/fess/)の server_0.log に出力されます。コンソールにも fess.log にも 出力されません:
ブラウザーでのアクセス
以下の URL にアクセスして、Web インターフェースを確認します。
検索画面
Fess の検索画面が表示されます。初期状態では、クロール設定が行われていないため、検索結果は表示されません。
検索画面は Fess に同梱の静的テーマ bootstrap です。見た目を変えるには、管理画面の 「システム」>「テーマ」または bin/fess-setup install theme <name> で別のテーマをインストールするか ( fess-setup コマンド を参照)、同梱のテーマを複製して変更します( 同梱テーマのカスタマイズ を参照)。
管理画面
URL: http://localhost:8080/admin
デフォルトの管理者アカウント:
ユーザー名:
adminパスワード:
admin
警告
セキュリティに関する重要な注意
デフォルトのパスワードは必ず変更してください。 特に本番環境では、初回ログイン後すぐにパスワードを変更することを強く推奨します。
初回セットアップ
管理画面にログインしたら、以下の初期設定を行います。
ステップ 1: 管理者パスワードの変更
管理画面にログイン(http://localhost:8080/admin)
左メニューから「ユーザー」→「ユーザー」をクリック
adminユーザーをクリック「パスワード」フィールドに新しいパスワードを入力
「パスワード(確認)」フィールドに同じパスワードを再入力
「更新」ボタンをクリック
重要
パスワードは以下の条件を満たすことを推奨します:
8文字以上(
password.min.lengthで設定される必須の最小文字数)英大文字、英小文字、数字、記号を組み合わせる
推測されにくいもの
デフォルトで必須となるのは最小文字数(8文字)のみで、文字種の組み合わせは 強制されません。文字種の要件は password.require.uppercase などの設定で 有効化できます。
ステップ 2: クロール設定の作成
検索対象のサイトや ファイルシステムをクロールする設定を作成します。
左メニューから「クローラー」→「ウェブ」をクリック
「新規作成」ボタンをクリック
必要な情報を入力:
名前: クロール設定の名前(例:会社のWebサイト)
URL: クロール対象の URL(例:https://www.example.com/)。複数指定する場合は 1 行に 1 URL を記述します
最大アクセス数: クロールするドキュメント数の上限(省略可能)
間隔: 各アクセス間の待機時間(ミリ秒。デフォルト:
10000)
注釈
上記以外の項目(ユーザーエージェント、スレッド数、深さなど)は、 未入力の場合はデフォルト値が使用されます。
「作成」ボタンをクリック
ステップ 3: クロールの実行
左メニューから「システム」→「スケジューラ」をクリック
「Default Crawler」ジョブを開き、「今すぐ開始」ボタンをクリック
クロールが完了するまで待ちます(進行状況はダッシュボードで確認可能)
ステップ 4: 検索の確認
検索画面(http://localhost:8080/)にアクセス
検索キーワードを入力
検索結果が表示されることを確認
注釈
クロールには時間がかかる場合があります。 大規模なサイトの場合、数時間から数日かかることもあります。
その他の推奨設定
本番環境で運用する場合、以下の設定も検討してください。
主な環境変数による設定
ポート番号、JVM ヒープサイズ、接続先の OpenSearch などは、環境変数で変更できます。 ZIP 版は bin/fess.in.sh、RPM 版は /etc/sysconfig/fess、DEB 版は /etc/default/fess を編集します。変更後は Fess の再起動が必要です。
| 環境変数 | デフォルト | 説明 |
|---|---|---|
FESS_PORT | 8080 | Fess が待ち受けする HTTP ポート番号。 |
FESS_HEAP_SIZE | (未設定) | JVM ヒープサイズ。最小・最大に同じ値を設定します。未設定時は最小 256m・最大 2g(ZIP 版(Windows)は最大 1g)、RPM/DEB 版では 512m が使用されます。 |
SEARCH_ENGINE_HTTP_URL | http://localhost:9200 | 接続先 OpenSearch の URL。ZIP 版では bin/fess.in.sh が既定でこの値を設定します。OpenSearch を別ポートや別ホストで稼働させる場合は、環境変数として設定するか bin/fess.in.sh を編集します。RPM/DEB 版ではパッケージの環境設定ファイルで設定されます。 |
FESS_LOG_LEVEL | warn | Fess のログレベル。 |
FESS_HEAP_NEWSIZE | (未設定) | JVM ヒープの新世代領域のサイズ(-Xmn)。256m のように指定します。未設定時は JVM が決定します。 |
FESS_TEMP_PATH | Fess ディレクトリ内の temp(RPM/DEB 版は /var/tmp/fess) | 一時ファイルを保存するディレクトリ(組み込み Tomcat の作業ディレクトリを含む)。Fess を実行するユーザーが書き込める必要があります。 |
FESS_CONF_PATH | (未設定)(RPM/DEB 版は /etc/fess) | 設定ファイルを置くディレクトリ。 bin/fess がこのディレクトリをクラスパスの先頭に追加し、 -Dfess.conf.path として Fess に渡します。 lib/classes にある tomcat_config.properties などは、このディレクトリのものが優先されます。ただし、ZIP 版の Web アプリケーションは app/WEB-INF/classes のファイルを先に参照するため、このディレクトリに置いた fess_config.properties では app/WEB-INF/classes の fess_config.properties の値を上書きできません(クローラーなどの子プロセスは、このディレクトリを WEB-INF/classes より先に参照します)。ZIP 版で fess_config.properties を変更するときは app/WEB-INF/classes のファイルを編集してください。RPM/DEB 版は app/WEB-INF/classes に fess_config.properties を含めず、 /etc/fess のファイルだけを使用します。 |
FESS_USE_IPV4 | (未設定) | 空でない値を設定すると、JVM は IPv4 スタックだけを使用します(-Djava.net.preferIPv4Stack=true)。 |
FESS_USE_GC_LOGGING | (未設定) | 空でない値を設定すると、JVM は GC ログをログディレクトリの gc-fess.log に出力します(64 MB のファイルを最大 5 つ)。 |
注釈
ZIP 版(Windows)の bin\fess.in.bat が参照する環境変数は、これらのうち FESS_HEAP_SIZE、FESS_HEAP_NEWSIZE、FESS_USE_IPV4、FESS_USE_GC_LOGGING と、表にない次の環境変数です。
FESS_MIN_MEM、FESS_MAX_MEM: 最小・最大ヒープサイズを個別に指定します(FESS_HEAP_SIZEを設定した場合は無視されます)。FESS_DIRECT_SIZE: ダイレクトメモリの上限(-XX:MaxDirectMemorySize)です。FESS_DICTIONARY_PATH: OpenSearch のconfig\dictionaryディレクトリです。FESS_PROXY_HOST、FESS_PROXY_PORT、FESS_NON_PROXY_HOSTS: プロキシの設定です。FESS_JAVA_OPTS: 設定済みの値の後ろに、fess.in.batが JVM オプションを追加します。PLAYWRIGHT_NODEJS_PATH: Playwright プラグインが使用する Node.js の実行ファイルです。JAVA_HOME: 必須です。
FESS_PORT、FESS_LOG_LEVEL、FESS_TEMP_PATH、FESS_CONF_PATH、SEARCH_ENGINE_HTTP_URL は参照されません。これらの値はファイル内に直接記述されているため、変更する場合は bin\fess.in.bat を直接編集してください。
メールサーバーの設定
障害通知などをメールで受信するには、SMTP サーバーと通知先メールアドレスを設定します。
fess_env_web.propertiesとfess_env_crawler.propertiesのmail.smtp.server.main.host.and.portに SMTP サーバーのホストとポートを 指定します(デフォルト:localhost:25)。これらのファイルは、ZIP 版ではapp/WEB-INF/classes/に、RPM/DEB 版では/etc/fess/にあります。 Fess の Web プロセスが前者を、クロール完了のメールを送信するクローラーが後者を読み、fess_env.propertiesは使われません。変更後は Fess の再起動が必要です。管理画面の左メニューから「システム」→「全般」をクリックします。
「通知メール」フィールドに通知先のメールアドレスを入力します。
「更新」ボタンをクリックします。
「テストメールの送信」ボタンで、メールが正しく送信されるか確認できます。
タイムゾーンの設定
Fess のタイムゾーンには、サーバー(OS / JVM)のタイムゾーンが使用されます。 管理画面にタイムゾーンを変更する設定項目はありません。変更する場合は、OS の タイムゾーン設定を変更するか、bin/fess.in.sh(Windows は bin\fess.in.bat)の FESS_JAVA_OPTS に JVM オプション -Duser.timezone=Asia/Tokyo を追加します。
ログレベルの調整
本番環境では、ログレベルを調整してディスク使用量を抑えることができます。
Fess 全体のログレベルは、環境変数 FESS_LOG_LEVEL(デフォルト:warn)で 変更できます。個別のロガーを細かく制御する場合は、設定ファイル app/WEB-INF/classes/log4j2.xml を編集します。クロール、サジェスト、サムネイル 生成は別プロセスで動作するため、これらのログレベルは app/WEB-INF/env/{crawler,suggest,thumbnail}/resources/log4j2.xml で個別に 設定します。
詳細は Fess 管理者ガイド を参照してください。
停止方法
ZIP 版の場合
Fess の停止
プロセスを kill します:
または、Ctrl+C でコンソールから停止できます(フォアグラウンドで実行している場合)。
OpenSearch の停止:
RPM/DEB 版の場合 (chkconfig)
Fess の停止:
OpenSearch の停止:
RPM/DEB 版の場合 (systemd)
Fess の停止:
OpenSearch の停止:
Docker 版の場合
コンテナの停止:
コンテナの停止と削除:
警告
down コマンドでボリュームも削除する場合は -v オプションを追加します。 この場合、すべてのデータが削除されるため注意してください。
再起動方法
ZIP 版の場合
停止してから起動します。
RPM/DEB 版の場合
chkconfig:
systemd:
Docker 版の場合
トラブルシューティング
起動しない場合
OpenSearch が起動しているか確認
OpenSearch が起動していない場合、まず OpenSearch を起動してください。
ポート番号の競合を確認
net-tools が導入されている環境では、
sudo netstat -tuln | grep 8080でも同じ内容を確認できます。ポート 8080 が既に使用されている場合、ポート番号を変更します。
ZIP 版:
bin/fess.in.shのFESS_PORTを変更ZIP 版(Windows):
bin\fess.in.batの-Dfess.port=8080を直接編集RPM 版:
/etc/sysconfig/fessのFESS_PORTを変更DEB 版:
/etc/default/fessのFESS_PORTを変更
ログを確認
エラーメッセージを確認して、問題を特定します。
Java のバージョンを確認
Java 21 以降がインストールされていることを確認してください。
詳細なトラブルシューティングについては、トラブルシューティング を参照してください。
次のステップ
Fess が正常に起動したら、以下のドキュメントを参照して運用を開始してください:
Fess 管理者ガイド - クロール設定、検索設定、システム設定の詳細
セキュリティ設定 - 本番環境でのセキュリティ設定
トラブルシューティング - よくある問題と解決方法
アップグレード手順 - バージョンアップ手順
アンインストール手順 - アンインストール手順