Tableau Resource Monitoring Tool から Slack に通知を送る

2023.01.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

バージョン 2022.1 以降の Tableau Resource Monitoring Tool(以下、RMT) では、インシデントの重要度の下限値を設定することで、該当するレベル以上のインシデントが発生した際に、Slack に通知を送ることができるので、その機能を試してみた記事になります。

前提条件

下記の環境で検証しています。
・Tableau Server Windows:2022.1.9
・Resource Monitoring Tool Master:2022.3.2
・Resource Monitoring Tool Agent:2022.3.2

RMTにおけるインシデント

インシデントの定義

RMTでは、監視対象のサーバーまたはサーバー群を環境(Environment)と呼びます。
エージェントを通して環境側の異常が検知されると、ツール上でインシデントとして報告されます。
インシデントは、下記の通り大きく2種類に分類されます。

インシデント 概要 種類
システム定義のインシデント 既定で設定されており、ユーザーで変更できない エージェントダウン
エージェントのライセンスなし
環境のダウン
構成可能なインシデント ユーザー側で環境ごとに閾値や重要度を設定可能 抽出失敗
ハードウェア
Hyperスプーリング
低速クエリ
低速ビュー

インシデントはさらに、重要度によって分類されます。下記はドキュメントの引用になりますが、3種類が定義されています。

Web UIでの表示

通常、インシデントが発生すると下記の通り確認できます。

環境の選択画面
環境選択画面の環境名(下記の場合testが環境名)の横に、発注しているインシデント数が表示されます。

・通常時

・インシデント発生時(赤枠が変化)

Criticalなインシデント発生時は、右下に「A Critical incident ~ 」のメッセージも追加表示されます。


メニューバー
環境内で作業中の場合、メニュー右の環境名の横に、マークが表示されます。

Criticalなインシデント発生時のマーク

これらのUI上の変化から、インシデント発生に気づくと、インシデントメニューからその詳細を確認することが一般的かと思います。

Slackへの通知設定

2022.1 以降のバージョンでは、SlackのIncoming Webhookを使用し、インシデント発生時に指定のチャンネルへ通知を送信可能です。

通知の送信にあたり、RMT・Slackそれぞれに必要な設定を後述します。

Slack側の設定

通知先の作成

通知の投稿先となるワークスペースとチャンネルを作成します。

Incoming Webhook の設定

Slackアプリの作成が必要になるので、下記の手順に従いアプリを作成し、Webhook URLを取得します。

Sending messages using Incoming Webhooks


RMTの設定

通知は、グローバルレベル(複数環境で共通)、または環境レベルで設定可能です。ただし、通知を送信するには、グローバルレベルでの通知設定を有効にしておく必要があります。

グローバルレベルの設定は、各環境でカスタム閾値を使用していない限り、既存の環境や新規作成される環境に、その設定が適用されることになります。

環境ごとに設定を行う場合、グローバルレベルの設定が各環境の設定で上書きされることになります。

グローバルレベルの通知設定

メニューの「Admin > Global Configuration > Notifications」よりグローバルレベルの通知設定を開きます。既定ではオフになっているので有効化し、下記を設定します。

・通知を送信する最小重大度レベル(Information, Warning, Critical)
・Webhook URL

[Send Test Message]より、テストメッセージの送信も可能です。
サーバーからのアウトバウンド通信が制御されていなければ、特に追加の設定は不要で通知を送信することができます。

環境レベルの通知設定

環境ごとの設定を行う場合は、メニューの「Admin > Environments > Notifications」より同様の設定画面が表示されるので、そちらで設定を行います。

通知例

通知は、下記のような形でSlackに送信されます。

エージェントダウン

環境のダウン

さいごに

Slackへの通知は、Slack側の設定(投稿先・Slackアプリの作成)のみで対応可能なので設定にも時間を要しませんでした。
Slackを利用できる環境であれば、ぜひ活用したい機能だと感じました。