Skip to main content

リアルタイムイベントモニタリングを設定する

学習の目的

この単元を完了すると、次のことができるようになります。

  • イベントマネージャーを使用してリアルタイムイベントモニタリングを設定する。
  • プロファイルと権限セットを使用してリアルタイムイベントモニタリングへのユーザーアクセスを設定する。
  • イベントモニタリング固有のプラットフォームイベントに登録する。
  • 組織でのリアルタイムイベントの一般的な使用事例について説明する。
  • Streaming Monitor アプリケーションを使用して、リアルタイムイベントを使用や表示する方法を挙げる。

このモジュールの課題では Trailhead Playground に付属するデータを使用するため、このモジュール用の新しい Trailhead Playground を作成してください。次の手順に従って、Trailhead Playground を作成します。

Trailhead Playground のユーザー名とパスワードを取得する

Trailhead Playground を開くところから始めましょう。このページの一番下までスクロールして、[起動] をクリックします。組織に [ログイン情報を取得する] というタブが表示されている場合は、以下の手順に従います。 

表示されていない場合は、アプリケーションランチャー (アプリケーションランチャー) で、[Playground Starter] をクリックして手順に従います。Playground Starter アプリケーションが表示されない場合は、Trailhead ヘルプの「Trailhead Playground のユーザー名とパスワードを確認する」を参照してください。

  1. [ログイン情報を取得する] タブをクリックして、ユーザー名をメモします。
  2. [パスワードをリセットする] をクリックします。これにより、ユーザー名に関連付けられているアドレスにメールが送信されます。
  3. メールに記載されたリンクをクリックします。

新しいパスワードを入力し、確認して、[パスワードを変更] をクリックします。

リアルタイムイベントモニタリングを設定する

まず [設定] に移動して、[クイック検索] ボックスにイベントマネージャーと入力します。Enterprise 環境と Unlimited 環境ではデフォルトで LogoutEvent プラットフォームイベントオブジェクトにアクセスできますが、残りのイベントには Shield: Event Monitoring にアクセスするためのライセンスが必要です。アクセスできないが試用したい場合は、Developer Edition 組織でリアルタイムイベントを有効にできます。Developer Edition 組織に Event Monitoring アドオンサブスクリプションがある場合は、リアルタイムイベントモニタリングが搭載されています。Trailhead Playground 組織でもアクセスできます。イベントを有効にするには、使用するイベントに移動して、ストリーミングまたはストレージを有効にします。 

[設定] の [イベントマネージャー] に、イベントとその名前、登録チャネル、種別、説明、そしてイベントがデータのストリーミング、データの保存、その両方のどれに該当するかが表示されています。

リアルタイムイベントモニタリングへのアクセスを有効にする

リアルタイムイベントモニタリングへのユーザーアクセス権は、プロファイルと権限セットで設定できます。必要なユーザー権限は次のとおりです。

  • イベントを参照する: 「リアルタイムイベントモニタリングデータの表示」
  • トランザクションセキュリティポリシーを作成、編集、管理する: 「アプリケーションのカスタマイズ」
メモ

Trailhead Playground ではリアルタイムイベントモニタリングへのアクセスがすでに有効になっています。ただし、Salesforce 組織でリアルタイムイベントモニタリングへのユーザーアクセスを設定する場合は、次の手順を実行します。

ユーザーアクセスを設定する手順は、次のとおりです。

1.[設定] から、次のいずれかの手順を実行します。

    • [クイック検索] ボックスに権限セットと入力し、[権限セット] を選択します。
    • [クイック検索] ボックスにプロファイルと入力し、[プロファイル] を選択します。

2.権限セットまたはプロファイルを選択します。

3.権限セットとプロファイルのどちらを使用するかに応じて、次のいずれかの手順を実行します。

    • 権限セットまたは拡張プロファイルユーザーインターフェースで、権限を選択します。[設定の検索] ダイアログボックスに、リアルタイムイベントモニタリングデータの表示と入力します。[編集] をクリックし、オプションを選択して、[Save (保存)] をクリックします。「アプリケーションのカスタマイズ」権限についてもこの手順を繰り返します。
    • 元のプロファイルユーザーインターフェースで、プロファイル名を選択し、[編集] をクリックします。トランザクションセキュリティポリシーを作成する予定の場合は、[リアルタイムイベントモニタリングを表示][アプリケーションのカスタマイズ] を選択します。[Save (保存)] をクリックします。

リアルタイムイベントモニタリングを有効にするほか、リアルタイムイベントオブジェクトに対するユーザー権限も設定します。リアルタイムイベントモニタリングオブジェクトに機密データが含まれていることがあります。

イベントモニタリング固有のプラットフォームイベントに登録する

リアルタイムイベントモニタリングは、通常はログに記録される一部のイベントを取得し、プラットフォームイベントを使用してストリーミングします。つまり、登録者であれば、プラットフォームイベントの場合と同じ方法でイベントを使用できます。ただし、プラットフォームイベントとは異なり、すべてのリアルタイムイベントがトリガーや宣言型ツールで登録されるわけではありません

リアルタイムイベントモニタリングを使用する場合は、Salesforce によって公開される標準イベントに登録して組織のアクティビティを監視できます。このデータには、ストリーミング API クライアントを使用して任意の外部データシステムから登録できます。

データは、公開/登録モデルを使用してストリーミングされます。Salesforce がストリーミングデータをイベント登録チャネルに公開し、使用する側のアプリケーションがそのイベントチャネルに対する登録またはリスンによってほぼリアルタイムにデータを取得します。ストリーミングイベントは最大 3 日間保持されます。リアルタイムイベントモニタリングのストリーミングイベントは、プラットフォームイベントの配信割り当てに含まれません。システム保護制限が適用される場合があります。

メモ

過去 3 日以内のイベントデータをより効率よく取得および処理するには、ストリームの過去のイベントに登録するのではなく、Big Object からイベントを照会することをお勧めします。

EMP コネクタを使用して登録する

では、EMP コネクタを使用してプラットフォームイベントに登録する 1 つの方法を見てみましょう。

メモ

EMP コネクタは、無料のオープンソースのコミュニティサポートツールです。Salesforce は、CometD を使用してイベントを登録する方法の例としてこのツールを提供しています。独自の機能強化でこの EMP コネクタプロジェクトに貢献するには、https://github.com/forcedotcom/EMP-Connector のリポジトリにプル要求を送信してください。

前提条件

ストリーミングのリアルタイムイベントを有効にする

1.ストリーミングのリアルタイムイベントである ReportEventStream を有効にします。

  1. Playground の [設定] で、[クイック検索] ボックスにイベントマネージャーと入力し、[イベントマネージャー] を選択します。
  2. [レポートイベント] で、ドロップダウンから [ストリーミングを有効化][ストレージを有効化] を選択します。

2.EMP コネクタプロジェクトファイルをダウンロードするために、ターミナルを開きます。

  1. Windows の場合は、ホーム画面の下部の [スタート] ボタンの横にある検索ボックスに CMD と入力します。
  2. Mac の場合は、[Command] ボタンとスペースバーを同時に押して、画面に検索バーを開きます。次に、ターミナルと入力してターミナルを検索します。左側のサイドバーの [ターミナル] をダブルクリックして、Mac のターミナルを開きます。

3.ターミナルで、次のコマンドを使用して GitHub のリポジトリをコピーします。

  1. git clone https://github.com/forcedotcom/EMP-Connector

4.Visual Studio Code で、[ファイル] | [フォルダーを開く] をクリックします。

5.コピーした EMP コネクタのフォルダーを選択します。

6.ブラウザーの [Extension Pack for Java (Java 向け拡張機能パック)] ページに移動します。

7.[Install (インストール)] をクリックします。 Extension Pack for Java (Java 向け拡張機能パック)

8.[Open Visual Studio Code (Visual Studio Code を開く)] をクリックします。

9.[Install (インストール)] をクリックします。

10.[実行] | [構成を開く] をクリックします。

11.[Java] をクリックします。

12.Java 言語サーバーを標準モードで実行するように促されたら、[はい] を選択します。launch.json という新しいファイルが開きます。

13.launch.json で、"mainClass":"com.salesforce.emp.connector.example.LoginExample" という行と、この行の下の "projectName":"emp-connector" という行を見つけます。

14.カンマを追加して Enter キーを押し、新しい行に "args":"username password /event/ReportEventStream" というテキストをコピーします。

Visual Studio Code Java Extension Pack を表示するコードブロックで、“args”: “username password /event/ReportEventStream” が強調表示されています。

15.usernamepassword を各自の Playground ログイン情報に置き換えます。

メモ

一部のオペレーティングシステムでは、特定の文字が特別な機能と解釈されます。たとえば、macOS システムと Unix ベースのシステムでは、!、\、$ が特殊文字に該当します。パスワードに特殊文字が含まれる場合、クラスが正しく実行されない可能性があります。特殊文字の前に \\ を挿入してエスケープしてみてください。Mac では、test!password というパスワードが test\\!password と入力されます。

16.ファイルを保存します。

17.main/java/com/salesforce/emp/connector/example/LoginExample.java を見つけて右クリックし、[実行] を選択します。
Visual Studio Code のメニューの main/java/com/salesforce/emp/connector/example/LoginExample.java が展開され、[実行] ボタンにマウスのクリックが示されてます。

18.ターミナルウィンドウが開き、サブスクリプションが表示されます。
サブスクリプションに関連するコードを示す、Java Process Console のターミナルウィンドウ

19.イベントメッセージを生成するために、イベントを起動するアクションを実行します。ReportEventStream の場合は、Playground で任意のレポートを実行します。

  1. Playground でレポートを作成するには、アプリケーションランチャーアイコン をクリックしてレポートと入力します。
  2. [レポート] をクリックします。
  3. [新規レポート] をクリックします。
  4. [ケース] を選択して、[Next (次へ)] をクリックします。
  5. [実行] をクリックします。

20.レポートを実行後、EMP コネクタがイベント通知を受信し、コンソールに出力します。出力は次のようになります。

{
"schema": "mn_C9tvH0ofZbpxU2XthsQ",
"payload": {
"EventDate": "2020-11-18T22:39:26.000Z",
"Description": null,
"EvaluationTime": 0.0,
"NumberOfColumns": 7,
"Operation": "ReportRunAndNotificationSent",
"DashboardId": null,
"LoginHistoryId": "0YaB000003NcnpbKAB",
"Name": "Total Cases Created",
"IsScheduled": false,
"ColumnHeaders": "[OWNER, ACCOUNT.NAME, SUBJECT, CREATED_DATE, AGE, OPEN, CLOSED]",
"Format": "Tabular",
"CreatedById": "005B0000006xcmjIAA",
"OwnerId": "005B00000078z7S",
"SessionKey": "+Tned3rTsZ5a1hBA",
"PolicyOutcome": null,
"Records": "{\"totalSize\":26,\"rows\":[{\"datacells\":[\"005B00000078z7SIAQ\",\"500B00000062HLqIAM\",\"500B00000062HLqIAM\",\"001B000001KYEVsIAP\"]},{\"datacells\":[\"005B00000078z7SIAQ\",\"500B00000062HLrIAM\",\"500B00000062HLrIAM\",\"001B000001KYEVxIAP\"]},{\"datacells\":[\"005B00000078z7SIAQ\",\"500B00000062HLsIAM\",\"500B00000062HLsIAM\",\"001B000001KYEVxIAP\"]},{\"datacells\":[\"005B00000078z7SIAQ\",\"500B00000062HLtIAM\",\"500B00000062HLtIAM\",\"001B000001KYEVyIAP\"]},{\"datacells\":[\"005B00000078z7SIAQ\",\"500B00000062HLuIAM\",\"500B00000062HLuIAM\",\"001B000001KYEVyIAP\"]},{\"datacells\":[\"005B00000078z7SIAQ\",\"500B00000062HLvIAM\",\"500B00000062HLvIAM\",\"001B000001KYEVyIAP\"]}]}",
"EventIdentifier": "92b7815d-acfd-465e-9b1b-54d3a2833571",
"DisplayedFieldEntities": "Account,Owner,Case",
"RelatedEventIdentifier": null,
"ExecutionIdentifier": "cb56d782-ee73-44c5-b4b6-10a9e014b6ae",
"RowsProcessed": 26.0,
"RowsReturned": null,
"ReportId": null,
"Sequence": 1,
"DashboardName": null,
"EventSource": "Lightning",
"SourceIp": "Salesforce.com IP",
"Scope": "organization",
"Username": "rburgle@force.com",
"UserId": "005B00000078z7SIAQ",
"CreatedDate": "2020-11-18T22:39:36.796Z",
"ExportFileFormat": null,
"LoginKey": "B9AyV/N2mnoXMyXc",
"PolicyId": null,
"GroupedColumnHeaders": null,
"QueriedEntities": "Case",
"SessionLevel": "STANDARD"
},
"event": { "replayId": 127201 }
}

この出力の行 7 (NumberOfColumns) と行 19 (totalSize) にレポートのサイズに関する情報が示されています。行 30 はログインしたクライアントの IP アドレスです。行 10 はログイン履歴で、ユーザーセッションを追跡して、ユーザーアクティビティと特定の一連のレポートイベントを関係付けることができます。行 18 はイベントに関連付けられているトランザクションポリシーの結果 (ユーザーが 2 要素認証要求を承認したか却下したか) です。

この例のイベントからわかるとおり、ユーザーのアクティビティにまつわる断片をつなぎ合わせて全容を知ることができます。LoginHistoryID が同じ他のイベントを探し、見つかったイベントをたどってユーザーの元の認証を突き止めれば、特定の一連のレポートイベントに関するアクティビティを追跡できます。また、PolicyOutcome を確認することも一案です。ポリシーをトリガーした操作の実行がブロックされた場合、無効なパスワードが何度も入力された場合、認証アプリケーションで 2 要素承認要求が却下された場合は、そのユーザーが認証されていない情報にアクセスしようとしたことを示す危険信号である場合があります。 

リアルタイムイベントをストリーミングする

前述のとおり、リアルタイムイベントはプラットフォームイベントを使用してストリーミングされ、関連する任意のクライアントアプリケーションで使用できます。監視にサードパーティアプリケーションを使用している場合は、リアルタイムイベントに登録して、そこで評価できます。イベントを検証する優れた方法となるのが、Salesforce Labs の Streaming Monitor アプリケーションです! Streaming Monitor では、イベントの種別を選択し、lighting-emp-api コンポーネントを使用して多数のイベントに登録することができます。詳細は、Salesforce のストリーミング機能に関するブログ投稿を参照してください。

リソース

無料で学習を続けましょう!
続けるにはアカウントにサインアップしてください。
サインアップすると次のような機能が利用できるようになります。
  • 各自のキャリア目標に合わせてパーソナライズされたおすすめが表示される
  • ハンズオン Challenge やテストでスキルを練習できる
  • 進捗状況を追跡して上司と共有できる
  • メンターやキャリアチャンスと繋がることができる