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に通知することができるので、利用してみてください。