Skip to main content

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

学習の目的

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

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

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

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

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

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

  1. [Get Your Login Credentials (ログイン情報を取得する)] タブをクリックし、ユーザー名をメモします。
  2. [Reset My Password (パスワードのリセット)] をクリックします。ユーザー名に関連付けられているアドレスにメールが送信されます。
  3. メールに記載されたリンクをクリックします。
  4. 新しいパスワードを入力し、確認して、[Change Password (パスワードの変更)] をクリックします。

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

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

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

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

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

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

メモ

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

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

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

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

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

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

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

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

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

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

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

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

メモ

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

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

ストリーミングのリアルタイムイベントである ReportEventStream を有効にする手順は、次のとおりです。

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

Pub/Sub API を使用したプラットフォームイベントへの登録

では、Pub/Sub API を使用してプラットフォームイベントに登録する 1 つの方法を見てみましょう。

前提条件

手順

  1. pub-sub-api GitHub リポジトリ: https://github.com/forcedotcom/pub-sub-api をフォークしてからコピーします。詳細は、GitHub DocsFork a repository (リポジトリのフォーク) を参照してください。リポジトリをフォークすることで、変更内容をフォーク済みリポジトリに保存できるようになります。リポジトリをフォークせずにコピーすることもできますが、その場合は、変更内容を pub-sub-api リポジトリに保存することはできません。
  2. ターミナルウィンドウで、コピーした pub-sub-api フォルダー内の java フォルダーに移動します。
  3. Java クライアントパッケージを作成して、proto ファイルから必要なソースを生成します。java フォルダーで mvn clean install と入力します。
  4. 次に、クライアントパラメーターを設定してから、設定パラメーターを arguments.yaml に書き込みます。
    1. PUBSUB_HOSTPUBSUB_PORT のデフォルト値は維持します。
    2. [LOGIN_URL] に、Salesforce にログインする際に使用する URL を入力します。[My Domain (私のドメイン)] の URL (https://mycompany.my.salesforce.com など) または https://login.salesforce.com を使用してください。
    3. Playground Starter アプリケーションで Trailhead Playground 組織のユーザー名とパスワードを取得します。詳細は、「Trailhead Playground の管理」モジュールの「Trailhead Playground のユーザー名とパスワードの取得」単元を参照してください。
    4. USERNAME (ユーザー名) に Trailhead Playground ユーザー名を入力します。
    5. PASSWORD (パスワード) に Trailhead Playground パスワードを入力し、パスワードにセキュリティトークンを追加します。セキュリティトークンを取得するには、Salesforce ヘルプ「セキュリティトークンのリセット」を参照してください。
    6. [TOPIC]/event/ReportEventStream と入力します。
  1. 変更内容を保存します。
  2. ターミナルウィンドウで、最上位の java フォルダーに移動します。
  3. ReportEventStream イベントに登録するために、./run.sh genericpubsub.Subscribe と入力します。
  4. イベントメッセージを生成するために、イベントを起動するアクションを実行します。ReportEventStream の場合は、Playground で任意のレポートを実行します。
    1. Playground でレポートを作成するには、アプリケーションランチャーアイコンをクリックして Reports (レポート) と入力します。
    2. [Reports (レポート)] をクリックします。
    3. [New Report (新規レポート)] をクリックします。
    4. [Cases (ケース)] を選択して [Start Report (レポートを開始)] をクリックします。
    5. [Run (実行)] をクリックします。
  5. 出力は次のようになります。
{
  "CreatedDate": 1717793026359,
  "CreatedById": "0058b00000I1GW8AAN",
  "EventIdentifier": "707db074-db25-4c72-b6f8-890ca7fa5b13",
  "UserId": "0058b00000HpWcRAAV",
  "Username": "k.n.hage@empathetic-shark-4d78ty.com",
  "EventDate": 1717793022000,
  "RelatedEventIdentifier": null,
  "LoginHistoryId": "0Ya8b0000GiFqkFCQS",
  "RowsProcessed": 26,
  "RowsReturned": null,
  "Operation": "ReportPreviewed",
  "QueriedEntities": "Case",
  "PolicyId": null,
  "PolicyOutcome": null,
  "EvaluationTime": 0,
  "SessionKey": "xAfEud9YsCJ6tMmi",
  "LoginKey": "mGeQ0eDvCsv5RkKl",
  "SessionLevel": "STANDARD",
  "SourceIp": "Salesforce.com IP",
  "DashboardId": null,
  "DashboardName": null,
  "EventSource": "Lightning",
  "ExecutionIdentifier": "7121db11-2082-44cc-a716-688266be7c5d",
  "ExportFileFormat": null,
  "IsScheduled": false,
  "NumberOfColumns": 7,
  "ColumnHeaders": "[Case.Owner.Name, Case.Account.Name, Case.Subject, Case.CreatedDate, AGE, OPEN, Case.IsClosed]",
  "GroupedColumnHeaders": null,
  "Description": null,
  "Format": "Tabular",
  "ReportId": null,
  "Records": "{\"totalSize\":26,\"rows\":[
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMluzAAD\",\"5008b00002OMluzAAD\",\"0018b00002UroeBAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlv0AAD\",\"5008b00002OMlv0AAD\",\"0018b00002UroeGAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlv1AAD\",\"5008b00002OMlv1AAD\",\"0018b00002UroeGAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlv2AAD\",\"5008b00002OMlv2AAD\",\"0018b00002UroeHAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlv3AAD\",\"5008b00002OMlv3AAD\",\"0018b00002UroeHAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlv4AAD\",\"5008b00002OMlv4AAD\",\"0018b00002UroeHAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlv5AAD\",\"5008b00002OMlv5AAD\",\"0018b00002UroeLAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlv6AAD\",\"5008b00002OMlv6AAD\",\"0018b00002UroeFAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlv7AAD\",\"5008b00002OMlv7AAD\",\"0018b00002UroeFAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlv8AAD\",\"5008b00002OMlv8AAD\",\"0018b00002UroeJAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlv9AAD\",\"5008b00002OMlv9AAD\",\"0018b00002UroeKAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvAAAT\",\"5008b00002OMlvAAAT\",\"0018b00002UroeKAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvBAAT\",\"5008b00002OMlvBAAT\",\"0018b00002UroeIAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvCAAT\",\"5008b00002OMlvCAAT\",\"0018b00002UroeFAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvDAAT\",\"5008b00002OMlvDAAT\",\"0018b00002UroeFAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvEAAT\",\"5008b00002OMlvEAAT\",\"0018b00002UroeKAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvFAAT\",\"5008b00002OMlvFAAT\",\"0018b00002UroeLAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvGAAT\",\"5008b00002OMlvGAAT\",\"0018b00002UroeBAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvHAAT\",\"5008b00002OMlvHAAT\",\"0018b00002UroeBAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvIAAT\",\"5008b00002OMlvIAAT\",\"0018b00002UroeCAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvJAAT\",\"5008b00002OMlvJAAT\",\"0018b00002UroeCAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvKAAT\",\"5008b00002OMlvKAAT\",\"0018b00002UroeGAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvLAAT\",\"5008b00002OMlvLAAT\",\"0018b00002UroeGAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvMAAT\",\"5008b00002OMlvMAAT\",\"0018b00002UroeGAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvNAAT\",\"5008b00002OMlvNAAT\",\"0018b00002UroeGAAR\"]},
{\"datacells\":[\"0058b00000HpWcRAAV\",\"5008b00002OMlvOAAT\",\"5008b00002OMlvOAAT\",\"0018b00002UroeGAAR\"]}]}",
  "Name": "Total Cases Created",
  "OwnerId": "0058b00000HpWcR",
  "Scope": "organization",
  "Sequence": 1,
  "DisplayedFieldEntities": "Account,Owner,Case"
}

出力の [NumberOfColumns] 項目にはレポートのサイズ、[RowsProcessed] 項目には返されたレコードの合計数が格納されます。[SourceIp] 項目には、ログインしたクライアントの IP アドレスが格納されます。[LoginHistoryId] 項目には、ログイン履歴が格納されます。これにより、ユーザーセッションを追跡して、ユーザーの活動を 10 行目の特定の一連のレポートイベントに関連付けることができます。[PolicyOutcome] 項目には、ユーザーが二要素認証要求を承認したか拒否したかなど、イベントに関連付けられたトランザクションポリシーのポリシー結果が格納されます。[Records] 項目には、レポートのデータが返され、レコード ID も含まれます。ReportEventStream も項目の説明は、『Platform Events Developer Guide (プラットフォームイベント開発者ガイド)』ReportEventStream を参照してください。

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

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

前述のとおり、リアルタイムイベントはプラットフォームイベントを使用してストリーミングされ、関連する任意のクライアントアプリケーションで使用できます。監視にサードパーティアプリケーションを使用している場合は、リアルタイムイベントに登録して、そこで評価できます。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む