はじめに
検索システムを構築して利用者に提供し始めると、それはもう「止められないシステム」になります。 利用者が日常的に検索に頼るようになると、検索が使えない時間は業務の停滞に直結します。
本記事では、Fess を安定して運用するための監視、バックアップ、障害対策について、実践的なプレイブックとして解説します。
対象読者
Fess を本番環境で運用する管理者
検索システムの安定稼働を担保したい方
システム運用の基本的な知識がある方
運用の全体像
Fess の安定運用は、以下の3つの柱で構成されます。
監視: 問題を早期に発見する
バックアップ: データを保全する
障害対策: 問題発生時に迅速に復旧する
監視
ヘルスチェック
Fess は REST API でヘルスチェックエンドポイントを提供しています。
GET http://localhost:8080/api/v1/health
正常時は HTTP 200 が返ります。 外部の監視ツール(Nagios、Zabbix、Datadog など)からこのエンドポイントを定期的に呼び出すことで、Fess の稼働状態を監視できます。
システム情報の確認
管理画面の [システム情報] から、以下の情報を確認できます。
クロール情報
最後のクロール実行結果(処理ドキュメント数、エラー数など)を確認できます。 クロールが正常に完了しているかの確認に使います。
システム情報
Fess と OpenSearch のバージョン、JVM のメモリ使用量、インデックスのドキュメント数などを確認できます。
監視すべき指標
クロール完了通知
Fess にはエラーログやサーチエンジンの障害検知時に通知を送る機能があります。 Slack や Google Chat の Webhook を設定することで、異常発生を即座に把握できます。
バックアップ
バックアップ対象
Fess 環境のバックアップ対象は、以下の2つに大別されます。
1. 設定データ
クロール設定、ユーザー情報、辞書データなど、管理画面から設定した情報です。 Fess の管理画面の [システム情報] > [バックアップ] から、設定データのバックアップを取得できます。
2. インデックスデータ
クロールで収集したドキュメントのインデックスです。 OpenSearch のスナップショット機能を使ってバックアップします。
バックアップ戦略
| 対象 | 頻度 | 保持期間 | 方法 |
|---|---|---|---|
| 設定データ | 日次 | 30世代 | Fess バックアップ機能 |
| インデックス | 日次 | 7世代 | OpenSearch スナップショット |
| Docker 構成 | 変更時 | Git 管理 | compose.yaml のバージョン管理 |
設定データのバックアップ自動化
Fess の管理 API を使って、設定データのバックアップを自動化できます。 スケジューラのジョブとして設定するか、外部の cron ジョブとして実行します。
リストア手順
障害発生時のリストア手順を事前に確認しておくことが重要です。
Fess を停止
設定データのリストア(管理画面またはAPI)
必要に応じて OpenSearch スナップショットからリストア
Fess を起動
動作確認
リストア手順は定期的にリハーサルを行い、手順の正確性と所要時間を把握しておきましょう。
障害対策
よくある障害と対処法
Fess が起動しない
ログファイル(logs/fess.log)を確認
JVM のメモリ不足:
-Xmxパラメータを調整ポート競合: 8080 ポートが他のプロセスに使われていないか確認
OpenSearch への接続失敗: OpenSearch が起動しているか確認
クロールが失敗する
ジョブログ([システム情報] > [ジョブログ])を確認
ネットワーク接続: クロール対象への疎通確認
認証エラー: 認証情報(パスワード、トークン)の有効期限を確認
障害 URL の確認: [システム情報] > [障害URL] で詳細を確認
検索が遅い
OpenSearch のクラスタ状態を確認(yellow/red の場合は対処が必要)
インデックスサイズの確認(肥大化していないか)
JVM ヒープの確認(ガベージコレクションが頻発していないか)
同時クロール中の場合、クロール完了後に改善するか確認
検索結果が古い
クロールスケジュールの確認(正常に実行されているか)
クロール設定の最大アクセス数が不足していないか
対象サイトがクロールをブロックしていないか(robots.txt)
障害 URL の管理
クロール時にアクセスできなかった URL は「障害 URL」として記録されます。 管理画面の [システム情報] > [障害URL] で確認できます。
障害 URL が多い場合は、以下を確認します。
対象サーバーが停止していないか
ネットワーク経路に問題がないか
認証情報が有効か
クロール間隔が短すぎて対象サーバーに負荷をかけていないか
ログ管理
Fess のログファイルは以下の場所に出力されます。
Fess ログ:
logs/fess.log(アプリケーションログ)クロール情報: 管理画面の [システム情報] > [クロール情報]
ジョブログ: 管理画面の [システム情報] > [ジョブログ]
検索ログ: 管理画面の [システム情報] > [検索ログ]
ログファイルが肥大化しないよう、ログローテーションの設定を確認しておきましょう。
運用チェックリスト
日常的な運用で確認すべき項目をチェックリストとしてまとめます。
日次チェック
クロールが正常に完了したか
ヘルスチェックが正常か
ディスク使用率が閾値以下か
週次チェック
検索ログのゼロヒット率(第8回参照)
失敗 URL の確認と対処
バックアップが正常に取得されているか
月次チェック
インデックスサイズの推移
JVM メモリ使用量のトレンド
辞書の更新(第9回参照)
セキュリティパッチの確認
まとめ
本記事では、Fess の安定運用のための監視、バックアップ、障害対策について解説しました。
ヘルス API と管理画面による監視
設定データとインデックスデータのバックアップ戦略
よくある障害パターンと対処法
日次・週次・月次の運用チェックリスト
「検索が使えて当たり前」を維持するために、予防的な運用体制を整えましょう。
次回は、検索 API を使って既存システムと連携するパターンを扱います。