Fessでは、クロール完了時にクロールおよびインデクシングに関する情報をメールなどで通知することができます。近年では、メール以外での通知方法として、Slackを利用するケースが増えているため、Fessでもクロール完了の通知をSlackに送信する機能が追加されています。

今回はクロール完了をSlackへ通知するための設定をご紹介します。

Slackでの設定

Incoming Webhookを利用して、FessからSlackに通知します。 通知先になるSlackのワークスペースは作成してあるものとします。

通知先として指定する URL は Slack の Incoming Webhook で作成します。 Incoming Webhook については Slack のドキュメントにも掲載されているので、こちらも参考にしてください。

Incoming Webhookの作成

クロールジョブ通知用の Incoming Webhook を以下の流れで作成していきます。

Slack API のページで「Create an app」をクリックします。

アプリ作成画面で「From scratch」をクリックします。

アプリ名を入力し、通知を送信したいワークスペースを選択して「Create App」をクリックします。 アプリ名は任意ですが、ここでは「fess」で設定します。

作成後、アプリの設定画面が表示されるので「Incoming Webhooks」をクリックします。

「Active Incoming Webhooks」の右側にあるトグルボタンを「on」にすると、「Webhooks」を作成する画面が表示されます。画面下部にある「Add New Webhook to Workspace」をクリックします。

通知を投稿するチャンネルを選択して「許可する」をクリックします。

「Webhook URL」に 生成された URL が表示されます。 この URL は 後で Fess に設定します。

Fessの起動

今回は Fess 14.6.1 を利用して説明していきます。

Fess をインストール後、先ほど生成したURLを system.properties で設定します。 system.properties は、ZIP版であれば、app\WEB-INF\conf にあります。

以下のように「slack.webhook.urls」を追加して Slack API で作成した URL を指定してください。

slack.webhook.urls=https\://hooks.slack.com/services/XXXXX/XXXXX/XXXXXXX

通知先の設定は上記の追加だけです。

次にクロール完了が通知されるかを確認していきます。

クロールの設定

Fess を起動したら、管理画面 http://localhost:8080/admin/ にアクセスしてクロール設定を登録します。

管理画面の左メニュー「クローラー」>「ウェブ」>「新規作成」をクリックして、クロール対象を指定します。 ここでは、例として Fess のサイトをクロールするため、以下を設定しています。

項目
名前 test
URL https://fess.codelibs.org/ja/
クロール対象とするURL https://fess.codelibs.org/ja/.*
最大アクセス数 30
スレッド数 1
間隔 10000 ミリ秒

クロール設定を入力したら、「作成」ボタンをクリックしてください。

クロールの実行

それでは、クロールを実行してみましょう。

管理画面の左メニューの「システム」>「スケジューラ」で「Default Crawler」のジョブを開きます。 「今すぐ開始」をクリックしてクロールを開始し、ジョブの状態が「実行中」から「有効」になるまで待ちます。

Slackへの通知

クロール完了後、指定したチャンネルに通知がきているか確認してみましょう。

メール通知と同様に、クロールジョブの実行結果が通知されます。 この通知でジョブの名前、ジョブの実行時間、作成されたインデックスの情報などを確認することができます。

* * *

今回は、Slackへの通知機能について紹介しました。 システムの運用関連の通知をSlackで受け取っている方も多いと思いますが、FessもSlackに通知することができるので、利用してみてください。