フォローする

2020.10.15 「Salesforce - 気になる機能を使ってみた:vol.1 - Salesforce Shield の Event Monitoring」

≪  2020.09.18 「Salesforce - Summer '20 新機能をチェック(4 - 最終回):Community Cloud & 開発者編 」

 

お世話になっております。
ウフル カスタマーサポート Salesforce 担当の 後藤 でございます。


Summer '20 のリリースから2ヶ月半ですが、早いもので来週は Winter '21 のリリースです。

そういえば本カスタマーサポート通信、Summer '20 新機能紹介の完結編をお送りしたのが3週間前で、 その後諸事情で配信ができておらず、次回は Winter '21 新機能シリーズの開始が確定・・・、 これは少々格好が悪いですので、今回は「 多くの方が気になっているけど導入には二の足を踏んでいる "あの" 機能」の紹介で、Summer '20 と Winter '21 の間を繋ぐことにいたしました。

 

その機能とは、Event Monitoring (イベントモニタリング機能)です。

 

「通常機能ではログイン履歴くらいしか取得できないところ、 どのレコードを参照したか、 どのレポートを参照してデータをエクスポートしたか、 といった詳細ログを取得できる機能」 としてご存知の方も多いかと存じますが、 有償オプションということで、 関心のあるお客様でも多くが導入に二の足を踏まれているのではな いかと思われます。
今回、 あるお客様の導入支援で実際にイベントモニタリングを設定する機会がありましたので、 その際に得た知見を皆様に共有させていただきます。

導入を検討しているお客様の一助になれば幸いです。

 

 

* Event Monitoring の概要

 

 

イベントモニタリングは、「Salesforce Shield」セキュリティアドオン群の一機能になります。

 

セキュリティアドオン - Salesforce Shield
https://www.salesforce.com/jp/products/platform/products/shield/

 

Salesforce Shield の概要については、カスタマーサポート通信でも以前に取り上げておりますので、よろしければご覧ください。

 

2020.07.03 「Salesforce のセキュリティ機能について:(1)データセキュリティの基本機能とプラットフォーム暗号化による拡張」
https://csminfo.uhuru.jp/hc/ja/articles/900001638086

 

この時は、Platform Encryption (プラットフォーム暗号化) を深掘りしましたが、 イベントモニタリングについてはスペースの関係上機能説明に留め ておりました。

その時の機能説明が以下の通りです。

 

  • イベントモニタリング
    誰がいつどのデータにどのような形でアクセスしたか、詳細なログを記録し、API 経由もしくは Einstein Analytics に取り込んで確認を行い、併せて、レポートの参照やエクスポートなど指定したイベントが発生した際に、管理者への通知などアクションを発生させる機能

 

もう少し深掘りしてみましょう。
Trailhead にイベントモニタリングのモジュールがあるので、 そちらから引用いたします。

 

イベントモニタリングの使用開始
https://trailhead.salesforce.com/ja/content/learn/modules/event_monitoring/event_monitoring_intro

 

===============================================================
イベントモニタリングでは、以下をはじめとする多くの種類のイベントを追跡できます。

  • ログイン
  • ログアウト
  • URI (Salesforce Classic での Web クリック)
  • Lightning (Lightning Experience と Salesforce モバイルアプリケーションでの Web クリック、パフォーマンス、エラー)
  • Visualforce ページの読み込み
  • API コール
  • Apex の実行
  • レポートのエクスポート

===============================================================

 


実際は上記以外にも取得することはできますが、 プログラミングをせずに「画面ポチポチ」だけで取得できるのはだいたい上記のイベント、と理解するとよいかと思われます。

 

取得したイベントログは、以下の方法で参照可能です。

 

  • EventLogFile オブジェクトに API 経由でアクセス
  • Event Monitoring Analytics アプリケーションを使用

 

EventLogFile オブジェクトのレコードは、まさしく「生データ」です。

Salesforce 純正の(但しスタンダードサポート対象外) API ツールである "Workbench" で取得する、もしくは自前でアプリケーションを開発する、 という方法を取ります。

 

Workbench
https://workbench.developerforce.com/login.php

 

REST API 開発者ガイド - イベント監視の使用
https://developer.salesforce.com/docs/atlas.ja-jp.api_rest.meta/api_rest/using_resources_event_log_files.htm

 

REST API 経由でのアクセスなので、 実はデータローダでも普通に取得できたりします。
("Show all Salesforce objects" チェックを付ける必要があります)

 

 

Salesforce 本番組織の画面内ではないですが、ログファイルをインターフェース上からダウンロードできるブラウザアプリケーションも用意されています。

期間とイベントタイプを絞り込んで CSV 形式で保存するようになっています。

 

Salesforce Event Log File Browser
https://salesforce-elf.herokuapp.com/

 

(Salesforce 組織にログインしたまま、ブラウザの別タブでアクセスすると、自動で対象組織にログインされます。)

 

 

但し、データローダや EventLogFile ブラウザから CSV を入手した場合、分析を行うには、外部の BI ツールにインポートする、または Excel 上でピボットテーブルなどを駆使して「力技」で対処する、といった「手間」が発生します。

 

カスタマーサポート通信は「一般的な Salesforce 管理者」の方が対象のコンテンツですので、やはり Salesforce にログインした画面の内ですべて完結する方法をお勧めしたい所存 です。

 

Salesforce Shield がリリースされた当初は API アクセスしか方法がありませんでしたが、 リリース後しばらくして「Event Monitoring Wave アプリケーション」 という専用の分析アプリケーションが提供開始され、その後「Einstein Analytics」に統合され、今に至っています。

 

今回は Einstein Analytics 上でイベントモニタリングダッシュボードを作成する機会に恵まれ ましたので、その一連の手順を通じてご案内させていただきます。

 

 

* 実際にイベントモニタリングアプリケーションを使用してみる

 

 

Salesforce Shield オプション(または Event Monitoring オプション単体)を追加で契約すると、 以下の権限セットが自動で追加されます。

 

  • Event Monitoring Analytics 管理者
  • Event Monitoring Analytics ユーザ

 

ダッシュボードやデータセットの定義を行うには管理者権限、 定義されたダッシュボードを実行し分析を行うにはユーザ権限を割り当てます。

 

 

上記権限セットは、権限セットライセンス「Event Monitoring Analytics App」に紐づけられており、合計で10ユーザを上限としてユーザに割り当てが可能です。

 

 

権限の詳細については以下のヘルプをご参照ください。

 

Event Monitoring Analytics アプリケーションの Salesforce 権限の設定
https://help.salesforce.com/articleView?id=bi_help_setup_admin_wave_permissions.htm&type=5

 

上記権限セットをユーザに割り当てたら、 管理者権限を割り当てたユーザによって、Einstein Analytics の有効化、および「イベントログファイルの Event Monitoring Einstein Analytics アプリケーションとのインテグレーションの有効化」を行います。

手順については以下のヘルプをご参照ください。

 

Einstein Analytics を有効にする
https://help.salesforce.com/articleView?id=000335760&type=1&mode=1

 

上記を有効化すると、権限セットが割り当てられたユーザには、 アプリケーションメニューに「Analytics Studio」が追加されます。

 

Analytics Studio ホーム画面右上に「作成」ボタンがあります。
こちらをクリックすると、 以下のようなアプリケーション作成画面が表示されます。
お勧めテンプレートに「Event Monitoring Analytics App」が表示されているはずなので、クリックをします。

 

 

各ステップは英語で表示されますが、「データセットに Apex 例外を含めますか?」や「Apex 例外ログを何日間保持しますか?(デフォルトは7日、1日~30日の範囲)」といったものなので、だいたいそのままで問題ないです。

 

 

最後に名前を付けて保存します。日本語が使用できます。

 

 

アプリケーションが作成されてデータが取得可能になるまで、 最大24時間要します。
(私が作成したときは、 アプリケーションの作成自体は1時間以内で終わりましたが、 データが出揃うまでさらに数時間掛かりました。)

設定が終わったら荷物をまとめて帰宅して、 翌日アプリケーションを開いて確認してみましょう。

 

 

アプリケーションの構成要素は以下の通りです。

 

  • データセット: イベントタイプごとにまとめられたイベントデータのリスト
  • レンズ:データセットに対し、絞り込みや集計を行い、 必要に応じてグラフ化したもの
  • ダッシュボード:複数のデータセットを元に、 絞り込みや集計を行いグラフ化したものを、 一画面で集約的に表示したもの

 

Salesforce レポートに例えると、データセットは「表形式レポート」、 レンズは「サマリー/マトリックスレポート」 をイメージするとわかりやすいかもしれません。 もちろんダッシュボードはそのまま「ダッシュボード」です。

 

データセットについては、冒頭で述べた「 画面ポチポチで設定できる標準的なイベントタイプのログ」 が自動で作成されます。
それ以外のイベントタイプについては、 データセットを自分で作成する必要があります。

対応しているイベントタイプについては、 以下のリファレンスをご参照ください。

 

SOAP API 開発者ガイド -  EventLogFile でサポートされているイベント種別
https://developer.salesforce.com/docs/atlas.ja-jp.226.0.api.meta/api/sforce_api_objects_eventlogfile_supportedeventtypes.htm

 

同様にダッシュボードも標準的なイベントタイプのものが自動で作成されます。

 

Event Monitoring Analytics アプリケーションの事前作成済みダッシュボード
https://help.salesforce.com/articleView?id=bi_app_admin_wave_dashboards.htm&type=5

 

例として「Logins」を見てみましょう。

いつ、どのユーザが、どの IP アドレスから、どのような方法(ブラウザ、 モバイルアプリケーション、API) でログインしているかについて、グラフを伴う集計値、 および一覧の生データで一目で参照できるようになっています。

表示ラベルが英語であるという制限はありますが、 すぐにでも使用できそうです。

 

 

定義済みダッシュボードをコピーして、独自に絞り込み条件を追加したり、英語の表示ラベルを日本語に変更するなどの加工をすることも可能ですが、データセットを一通り参照し、データのルールを把握出来たら、一からダッシュボードを作成するのもよいかもしれません。

私は「異常値検出」というダッシュボードを作成してみました。

「 一般社員プロファイルのユーザがレポートのエクスポートを行った 場合」「ブラウザ以外(具体的には何かしらの API 経由ログイン)があった場合」「ログインエラーが発生した場合」 「同じ日に一定回数以上のログインがあった場合」 に件数が積みあがるようにしたものです。

 

 

併せて、ダッシュボードの指定したコンポーネントにて「通知を設定」を有効化すると、毎日/毎週/毎月の決まった時刻に、指定したユーザに通知を行うことができます。

「初めて条件に一致したときのみに通知」 チェックを有効にすることで、「 一定の閾値を超えたときだけ通知する」ことも可能です。

 

 

 

 

ダッシュボードを常に最新の状態に保つには、データセットの更新が欠かせません。
Analytics アプリケーションの「データマネージャ」メニューを開き、 データフローのスケジュールをカスタマイズします。
デフォルトは週次になっているはずなので、 毎日最新のデータを参照する必要がある運用の場合、 日次に変更します。

 

 

 

Event Monitoring Analytics の日次データフローのスケジュール
https://help.salesforce.com/articleView?id=bi_app_admin_wave_dashboards.htm&type=5

 

 

 

===========================================================

イベントモニタリングの「深掘り」、如何でしたでしょうか。

以前からやりたいと思っており、 社内からも要望の声が上がっていましたが、 有償オプションのため(無償の Developer 環境でも動作検証は可能ですが、 データの扱いで著しい制限があります) 長い間先送りになっており、実際の導入をサポートすることで、 ようやく実現できました。

今回の記事をご覧いただいたお客様で、 イベントモニタリングに関心ございましたら、 是非ご連絡ください。

イベントモニタリングで最も重要な点は「 どのような指標で情報収集や監視を行いたいか」の定義ですので、 最初の要件ヒアリングから、 営業担当とコンサルタントにてじっくりと対応させていただきます 。

さて、冒頭に述べた通り、来週は早いもので Winter '21 のリリースです。

次回以降のカスタマーサポート通信の記事にて、 恒例の新機能紹介も順次行わせていただきます。

今後ともウフル カスタマーサポートを引き続きご愛顧いただきますよう、何卒よろしくお願い申し上げます。


Salesforce・Googleの運用・サポートでお困りなら

 カスタマーサポートへお問合せください。


コメント

 
 
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています