Microsoft TeamsはMicrosoft 365のチームコラボレーションハブであり、人、コンテンツ、ツールを統合します。
Microsoftは、Teamsのスムーズな運用の徹底に役立つ貴重なデータを豊富に提供しています。たとえば、通話の品質データ、ネットワークデータ、オーディオやビデオのジッターなどのデータが提供されています。このデータは、Microsoft Teams Add-on for Splunkを使用してSplunkに取り込むことができますが、 ただし、セットアップがやや込み入っています。では、さっそくその説明に入っていきましょう。
Teamsの通話記録データの取得方法
前述したデータのほとんどは、通話記録に含まれています。通常、MicrosoftのSaaSデータにアクセスするにはREST APIを使用します。通話記録データの場合も、この点については何ら変わりません。ただし、通話記録のREST APIを使用するには、このAPIに通話記録IDを渡す必要があります。残念ながら、現時点では通話記録IDを取得するREST APIはありません。それが、先ほど「込み入った」という表現をした理由です。では、通話記録IDはどこから取得できるのでしょうか。Microsoftから通話記録IDを取得する現時点での唯一の方法は、リッスン中のWebフックにTeamsのサブスクリプションを経由して通話記録IDを送信するようにすることです。ただし、どのWebフックでもいいわけではありません。チャレンジ/レスポンスをサポートし、特定のレスポンスコードを返すWebフックである必要があります。
以下は、プロセスのイメージ図です。
では、この通話記録データをもれなく取得するためのMicrosoft Teams Add-on for Splunkの設定方法について見ていきましょう。
SplunkでTeamsのWebフックを設定する
まずは、通話記録ヘッダーデータを受信するWebフックを設定する必要があります。Microsoft Teams Add-on for SpunkにはMicrosoft Teams専用のWebフックが含まれていて、これはMicrosoftが指定する方法で応答します。その設定方法は、次のとおりです。
- Microsoft Teams Add-on for Splunkを起動します
- [Inputs] > [Create New Input] > [Teams Webhook]の順に選択します
- 名前を入力します
- 間隔を入力します
- インデックスを選択します
- ポートを入力します(Webフックがデータの受信に使用するポートです)
- [Path]は空欄のままにします(将来使用される可能性もありますが、現時点でTeamsはパスを使用していません)
- SSL認証ファイルの完全なパスを入力します(オプション – Splunkインスタンスをインターネットに公開する場合にのみ必要です)
- SSL認証鍵ファイルの完全なパスを入力します(オプション – Splunkインスタンスをインターネットに公開する場合にのみ必要です)
重要:Teams Add-onを実行中のSplunkインスタンスにHTTPS経由でパブリックアクセスが可能である必要があります。ただし、Teams Add-onを実行中のSplunkインスタンスの前にロードバランサー、リバースプロキシ、トンネルなどがある場合(推奨)を除きます。テストを行うには、ngrokなどのトンネルを使用できます。
Webフックのテスト
コマンドラインでのテスト:
curl WEBHOOK_ADDRESS -d '{"value": "test"}'
サーチ:
sourcetype="m365:webhook"
Teamsの通話記録サブスクリプションの設定
Webフックを設定し、着信する通話記録ヘッダーをリッスンできるようになりました。 では、通話記録ヘッダーの送信が開始されるようにするには、どのようにしたらよいのでしょうか。 ここで関係してくるのが、サブスクリプションです。サブスクリプションは、Microsoftが通話記録ヘッダーをどこに送信すべきか定義します(ヒント:送信先は、今設定したばかりのWebフックです)。Microsoft Teams Add-on for Splunkには、サブスクリプションを設定するための入力もあります。設定方法は、次のとおりです。
- Azure PortalでAzure ADアプリ登録を作成します(注:リダイレクトURIは不要です)
- Azure ADアプリ登録に以下のアクセス許可を割り当てます
- CallRecords.Read.All (アプリケーション)
- Subscriptions.Read.All (委任)
- Microsoft Teams Add-on for Splunkを起動します
- [Configuration] > [Add]の順に選択します
- アカウント名を入力します
- Azure ADアプリ登録のクライアントID(アプリケーションID)を入力します
- Azure ADアプリ登録のクライアントシークレットを入力します
- [Add]を選択します
- [Inputs] > [Create New Input] > [Teams Subscription]の順に選択します

- 名前を入力します
- 間隔を入力します – サブスクリプションを更新する頻度を指定します。 サブスクリプションは更新しないと、期限切れになります。 この値は、86400 (24時間)に設定すれば十分です。
- インデックスを選択します
- アカウントを選択します
- テナントID (ディレクトリID)を入力します – こちらはAzure Portalから取得できます。
- 前の手順のWebフックのURLを入力します
サブスクリプションデータの確認
SPL:
sourcetype=" m365:subscription" earliest=0
結果のnotificationUrlフィールドにWebフックのアドレスが含まれているはずです。
Teamsの通話記録の入力設定
ここまで、通話記録ヘッダーをSplunkに取り込む方法についてのみ説明してきましたが、通話記録ヘッダーからは情報をあまり得られません。実用的なインサイトを得るには、実際の通話記録データが必要です。通話記録の入力は、次のように設定します。
- Microsoft Teams Add-on for Splunkを起動します
- [Inputs] > [Create New Input] > [Teams Call Record]の順に選択します
- 名前を入力します
- 間隔を入力します – 受信した通話記録ヘッダーを確認できるよう、この入力は頻繁に実行する必要があります。
- インデックスを選択します
- アカウントを選択します
- テナントID (ディレクトリID)を入力します – こちらはAzure Portalから取得できます。
サブスクリプションデータの確認
SPL:
sourcetype=" m365:teams:callrecord" earliest=0
結果は、Teamsでの通話が終了したあとでないと表示されません。通話が終了してTeamsが通話記録ヘッダーをSplunkにプッシュするのに数分かかります。
通話記録データの活用方法
通話記録データをSplunkに取り込めたところで、次に課題となるのは、このデータの活用方法です。実は、通話記録データを活用するには、Splunkが提供しているMicrosoft 365 App for SplunkとRWI - Executive Dashboardがあれば十分です。Splunk社員のPhilippe Tangが、Microsoft Teamsの通話記録を視覚的に確認するためにすぐに使える素晴らしいダッシュボードを作成しましたので、是非ご利用ください。
このブログはこちらの英語ブログの翻訳、庄司 大助によるレビューです。