今回は、CRM Analytics(旧Tableau CRM)を使ったイベントモニタリングの可視化の手順について説明していきます。
Event Monitoring Analyticsという機能を利用します。この機能は、イベントモニタリングライセンスを購入されていれば利用可能となっています。
※ライセンスを購入されている場合、イベントモニタリングログの取得と合わせて、CRM Analytics(旧Tableau CRM)の機能が利用可能となりますが、CRM Analyticsの利用については、イベントモニタリングに関する分析だけの用途に限られます。
(補足)Trailheadでは、以下のモジュールで取り上げられています。
Salesforce Trailhead 公式「Event Monitoring Analytics アプリケーション」
設定は以下の手順で実施します。
簡単な流れ
- 事前準備(前提条件の確認)
- イベントモニタリングの有効化
- 利用者の権限設定
- CRM Analyticsの設定
- ジョブスケジュールの設定
- ダッシュボードの実行
1.事前準備(前提条件の確認)
Event Monitoring Analytics(CRM Analytics)を利用するためには、ユーザのロール階層を設定していることが前提条件となっています。
要件詳細(以下、Salesforce公式サイトHELPより)
- ロール階層には 2 レベル以上含まれている必要があります。
- ユーザにはロールを割り当てる必要があります。
- 階層の各レベルには、少なくとも 1 人のユーザが割り当てられている必要があります。
Salesforce 公式HELPサイト「テンプレート Tableau CRM アプリケーションのロール階層の要件」
上記要件を満たさず、ロールが正しく設定されていない場合、作成したデータフローを実行すると以下のエラーが発生します。
"Something went wrong while executing the FlattenRole node: parent_field does not have any data."
Event Monitoring Analyticsを利用するSalesforce組織で正しくロールが設定されているか確認しておきましょう。
手順①システム管理者でSalesforceにログインし、設定->ユーザ->ロールを実行して、最上位のデフォルトの組織名の下に2階層以上のロールが設定されていることを確認します。
ロール階層が設定されていない場合は、新規ロールを追加しておきます。
要件3は、各ロールには1ユーザは割り当てている必要があるということで、各ロールの割り当てを確認していきましょう。
選択済みユーザが1名以上選択されていることを確認し、問題がなければ他のロールも確認しておきましょう。
最後に要件2にあるように、ユーザにロールが正しく割り当てられているか確認しておきましょう。
ロールが割り当たっていないユーザがいる場合は、割り当てをしておいてください。
以上で、前提条件の確認が終了となります。
イベントモニタリングを利用可能な組織を持っていない場合
TrailheadでEvent Monitoring Log Analyticsを検証可能な組織を作成することができます。
手順①以下のサイトへ接続します。
手順②LEARN CRM ANALYTICS WITH TRAILHEADサイトを表示したら、右側の欄に必要な情報を入力します。
以下の内容を登録します。
- First Name:名
- Last Name:姓
- Email address:メールアドレス
- Role:役割を選択
- Company:会社名
- Country:Japan(日本)を選択
- Postal Code:郵便番号
- Username:ログインユーザのユーザ名を指定(メールアドレス形式)
手順②登録が完了したら、以下のような画面が表示されますので、しばらくしてメールを確認してみてください。
手順③アクティベーションメールを受信したら、メール本文にある [アカウントを確認] をクリックします。
手順④パスワードの変更画面で新しいパスワードを設定します。
手順⑤Salesforce組織にログインしたら、アプリケーションからAnalytics Studioが利用できることが確認できます。
2.イベントモニタリングの有効化
イベントモニタリング設定の有効化を行います。
手順①設定->セキュリティ->イベントモニタリング->イベントモニタリング設定の順に実行します。
以下の画面で、Analytics アプリケーションでイベントログデータを表示を無効から有効に変更します。
イベントモニタリングデータを削除することが必要な場合は、合わせて有効化しておきます。
イベントマネージャをクリックすると以下の画面に遷移します。
こちらの画面では、「データストリーム」または「データを保存する」設定が可能です。
上記画面に定義されている内容となりますが、取得できるイベントの種類は以下のようなものがあります。
イベント種類 | 説明 |
API イベント | 組織のユーザ API クエリを追跡する |
API 異常イベント | ユーザが API コールを行う方法の異常を追跡する |
Bulk API 結果イベント | ユーザがいつ Bulk API 要求の結果をダウンロードしたのかを追跡する |
ID プロバイダイベント | ID プロバイダ活動を追跡 |
ID 検証イベント | ユーザがいつ ID を検証したかを追跡する |
Lightning URI イベント | ユーザがいつ Salesforce Lightning でレコードを作成、アクセス、更新、または削除したかを追跡する |
LoginAs イベント | システム管理者がいつ別のユーザとして組織にログインしたかを追跡する |
URI イベント | ユーザがいつ Salesforce Classic でレコードを作成、アクセス、更新、または削除したかを追跡する |
クレデンシャルスタッフィングイベント | 識別されたクレデンシャルスタッフィング攻撃中にユーザがいつ Salesforce に正常にログインしたかを追跡する |
セッションハイジャックイベント | 未承認ユーザがいつ盗難したセッション識別子を使用して Salesforce ユーザのセッションの所有権を取得したかを追跡する |
リストビューイベント | ユーザがいつリストビューでデータにアクセスしたかを追跡する |
レポートイベント | ユーザがいつレポートにアクセスしたか、またはレポートのデータをエクスポートしたかを追跡する |
レポート異常イベント | ユーザがレポートを実行またはエクスポートする方法の異常を追跡する |
ログアウトイベント | ユーザがいつ Salesforce UI で [ログアウト] をクリックしたかを追跡する |
ログインイベント | ユーザがいつ組織にログインしたかを追跡する |
実行時間が長い同時 Apex エラーイベント | 実行時間が長い同時 Apex エラーがいつ発生したかを追跡する |
権限セットイベント (ベータ) | 権限セットを通じてユーザがいつ「すべてのデータの編集」権限または「すべてのデータの参照」権限を割り当てられたかを追跡する |
3.利用者の権限設定
続いては、Analytics CRMを利用するための権限セットの設定を行います。
手順①権限セットを実行すると、以下2つの権限セットが用意されているのを確認できます。
・Event Monitoring Analytics ユーザ:Event Monitoring アプリケーションを表示することが可能
・Event Monitoring Analytics 管理者:Event Monitoring アプリケーションとデータフローを作成およびカスタマイズします。
※Event Monitoring Analytics Appsのライセンスがない場合には表示されません。
手順②まずは「Event Monitoring Analytics 管理者」をクリックして、以下の画面を表示したら、割り当ての管理をクリックします。
手順③割り当ての管理画面で、管理者のユーザを追加します。
手順④手順②、③と同様に「Event Monitoring Analytics ユーザ」についても必要なユーザを割り当てます。
4.CRM Analyticsの設定
ここからは、CRM Analytics側での作業となります。
Event Monitoring Log分析用のテンプレートが用意されているので、これを利用することで、簡単に分析アプリケーションを作成することができます。
手順①アプリケーションからAnalytics Studioを実行します。
手順②Analytics Studio起動後、作成メニューからアプリケーションを実行します。
手順③新規アプリケーションを作成画面では、Event Monitoring Analytics Appのテンプレートを選択します。
手順④ここからはセットアップウィザードに従って設定していきます。次へをクリックします。
手順⑤ステップ1からステップ6までについて、デフォルトではすべてNoとなっているため、分析したいログはすべて「Yes」に変更します。また期間については最長で30日までとなっているため、今回はすべて30で設定します。
ステップ2:同様にすべてYesで期間を30に設定
ステップ3:同様にすべてYesで期間を30に設定
ステップ4:同様にすべてYesで期間を30に設定
ステップ5:同様にすべてYesで期間を30に設定
ステップ6:同様にすべてYesで期間を30に設定
ステップ7では、「既存のデータセットに新規イベントログファイルを追加するか」チェックボックスはONにします。
最後にアプリケーションの名前を設定して作成をクリックします。
手順⑥作成処理が始まると以下の画面が表示されます。通常30分程度で作成が完了します。
手順⑦処理が正常終了した場合は、以下のように処理結果で「0 failed」となっています。
また完了通知のメールも届きます。
メールには、以下のような結果ログが出力されています。
Organization check complete
No application assets marked in-progress.
Completed adding template dependencies
ID [xxxx] のフォルダ [Event Monitoring Log Analytics] が正常に作成されました
データセット [ApexCallout] は正常に作成されました。
データセット [ApexCalloutWithUsers] は正常に作成されました。
データセット [ApexRestApi] は正常に作成されました。
データセット [ApexRestApiWithUsers] は正常に作成されました。
データセット [ApexSoap] は正常に作成されました。
データセット [ApexSoapWithUsers] は正常に作成されました。
データセット [ApexTrigger] は正常に作成されました。
データセット [ApexTriggerWithUsers] は正常に作成されました。
データセット [ApexExecution] は正常に作成されました。
データセット [ApexExecutionWithUsers] は正常に作成されました。
データセット [ApexUnexpectedException] は正常に作成されました。
データセット [
データセット [API] は正常に作成されました。
データセット [APIWithUsers] は正常に作成されました。
データセット [BulkApi] は正常に作成されました。
....(※一部のみ抜粋)
処理が失敗した場合は、エラー内容に応じて設定の見直しを実施してください。
5.ジョブスケジュールの設定
オブジェクトの情報を定期的に更新するためにジョブのスケジュールを設定します。
手順①Analytics Studioの画面から、データマネージャのメニューをクリックします。
手順②データマネージャ画面は、ジョブ監視画面とデータフロー管理画面の2つがあります。
以下が、ジョブ監視画面です。
データフロー管理画面(ジョブ監視画面でデータフローを管理を実行)
データフローとレシピのメニューをクリックすると、作成したアプリケーションのデータフロー「AppendDataflow」が作成されているので、未スケジュールの隣の▼メニューをクリックします。
手順③スケジュールの設定画面で、データ更新のスケジュールを設定します。
スケジュールモード:「時間ベース」か「イベントベース」
スケジュール基準:分、時間、週、月
開始:時間を選択
スケジュールが設定されると以下のように次の実行日程が表示されます。
6.ダッシュボードの実行
最後にAnalytics Studioの画面から、ダッシュボードを実行してみます。
※デフォルトで用意されているものがいくつかあります。それ以外にも自分でダッシュボードを作成することもできます。
手順①作成したアプリケーション「Event Monitoring Log Analytics」選択し、アプリケーションに含まれているダッシュボードを表示します。
ダッシュボード実行例
注意事項(補足)
イベントモニタリングログは、1カ月間しかサーバ上に保存されないため、過去ログをずっと保管しておく要件がある場合には、別途イベントモニタリングログをCSVでダウンロードしておく必要があります。
Salesforce Event Log File Browserを使った、CSVログファイルのダウンロード手順は以下となります。
手順①Salesforce組織にログインします。
手順②次にブラウザのタブを追加して、以下のURLへ接続します。
https://salesforce-elf.herokuapp.com/
手順③以下画面にて、ログインIDとパスワードを入力します。
手順④elf browserに対して、アクセス許可を実行します。
手順⑤Salesforce Event Log File Browserの画面が表示されたら、接続先を選択します。
本番環境の場合:Productionを選択 ,サンドボックスの場合:Sandboxを選択
手順⑥ログイン後には、以下の画面が表示されます。
・DataRange:ログを検索する範囲を指定
・EventType:検索対象のイベントタイプを指定
・Interval:ログのインターバルを指定
上記の条件を指定後、Applyボタンをクリックすると対象のログが一覧表示されます。
手順⑦上記検索結果の一覧からAction欄から、CSVダウンロードか、cURL Shell Scriptのダウンロードが実行可能です。
cURL Shell Scriptをダウンロードした場合、以下のようなスクリプトが出力されます。
#!/usr/bin/env sh
# A script that downloads an event log file
# Requires cURL http://curl.haxx.se/
# Event Type: Login
# Log Date: 2022-08-30
# File Size (in Bytes): 730.0
curl --compressed "https://{instance_url}/services/data/v32.0/sobjects/EventLogFile/0AT5h00002T6QHAGA3/LogFile" -H "Authorization: Bearer 00D5h000004bsqk!AQwAQKi.Ac5bmBi4LjUIaHZpPse5NF4Z61cA8uTjeDVsP....." -o "2022-08-30_Login.csv"
CSVダウンロードすると以下のようなログが出力可能です。
上記CSVファイルを過去ログとして保存したり、別のシステムへ取り込んで分析して利用することができます。
(補足)参考URL
参考URL
Salesforce Trailhead 公式「Event Monitoring Analytics アプリケーション」
Salesforce Trailhead 公式「イベントログファイルのダウンロードと視覚化」
まとめ
今回は、CRM Analyticsを使ったイベントモニタリングログの分析方法を紹介しました。
Event Monitoring Analyticsを利用することで、イベントモニタリングのログファイルをダウンロードして、解析するプログラムを自作する必要もなく、設定だけで簡単に利用できるため、ライセンスがある場合にはぜひ有効活用してみてください。