Salesforce アプリケーションのログの収集
このページでは、Sumo Logic での分析用に Salesforce からのイベントの収集をセットアップする手順を説明します。リンクをクリックして、トピックに移動してください。
- 要件とプロセスの概要
- Salesforce 用の新規の SumoJanus インストール環境の設定
- Salesforce 用の既存の SumoJanus インストール環境のアップグレード
- ログ メッセージのサンプル
- クエリのサンプル
要件とプロセスの概要
ログ収集のセットアップを開始する前に、以下のセクションで必要な前提条件とプロセスの概要を確認してください。
前提条件
アプリケーション ダッシュボードに表示されるすべてのデータを取得するには、Salesforce イベント モニタリング アドオンが必要です。 このアドオンにより、Salesforce EventLogFile、LoginEvent オブジェクト、トランザクション セキュリティ、Event Monitoring Analytics アプリケーションのすべてのイベント タイプにアクセスできます。詳細については、「Get Started with Event Monitoring (イベント モニタリングの開始)」および「Enable Event Monitoring (イベント モニタリングの有効化)」を参照してください。
プロセス概要
このページでは、新規インストールとアップグレード インストールの手順を説明します。
Salesforce 用の新規の SumoJanus インストール環境の設定
このプロセスに含まれる作業を次に示します。これらの作業は、記述されている順序で実行する必要があります。
- Salesforce の権限を設定します。
- Collector をインストールして SumoJanus パッケージをダウンロードします。
- SumoJanus パッケージをデプロイします。
- SFDC バンドルを設定します。
- JRE パスを設定します。
- Salesforce で認証します。
- スクリプト Source を設定します。
ステップ 1: Salesforce ユーザ権限の設定
権限セットを作成してユーザに割り当てる手順
- Salesforce で、[設定] > [管理] > [ユーザの管理] > [権限セット] に移動します。
- 「API の有効化」権限と「イベントログファイルを参照」または「すべてのデータの参照」権限のいずれかを使用して権限セットを作成します。詳細については、Salesforce ヘルプの「Create Permission Sets (権限セットの作成)」を参照してください。
- [権限セット概要] > [システム権限] ページで、[API の有効化] および [イベントログファイルを参照] を選択します。
- 作成したばかりの権限セット内にある [割り当ての管理] ボタンをクリックして、[割り当てを追加] をクリックします。
- ユーザを見つけ、そのユーザを作成したばかりの権限セットに割り当てます。
- 変更内容を保存します。
ステップ 2: Collector のインストールと SumoJanus パッケージのダウンロード
このセクションでは、Sumo Logic Collector をインストールして、必要な SumoJanus パッケージをダウンロードします。
Collector をインストールする
Sumo Logic で、Salesforce イベント モニタリング ログを収集するシステムに Collector (バージョン i19.115 以降) をインストールします。
Linux または Windows マシンで Installed Collector を設定します。デフォルトで、Collector には Java Runtime Environment が付属しています。SumoJanus が Java を見つけられるように、下記のように .bat ファイルまたは .bash ファイルを更新する必要がある場合があります。
SumoJanus パッケージのダウンロード
Salesforce からログを収集するには、SumoJanus ファイルが必要です。SumoJanus は Okta、Box、Salesforce などのアプリケーションからのスクリプトベースの収集に使用するプロプライエタリ ライブラリです。
次の SumoJanus パッケージ ファイルのうち、ご使用のシステムに適したものを使用します。
-
Linux の場合は、
https://script-collection.s3.amazonaws.com/sfdc/r3.1.0/sumojanus-salesforce-dist.3.1.0.tar.gz から sumojanus-salesforce-dist.3.1.0.tar.gz をダウンロードします。 - Windows の場合は、
https://script-collection.s3.amazonaws.com/sfdc/r3.1.0/sumojanus-salesforce-dist.3.1.0.zip から sumojanus-salesforce-dist.3.1.0.zip をダウンロードします。
ステップ 3: SumoJanus パッケージのデプロイ
このセクションでは、SumoJanus を新規にインストールする手順を説明します。
SumoJanus の新規インストール
-
Linux では、次のコマンドを実行します。
tar xzvf sumojanus-salesforce-3.1.0.tar.gz
-
Windows では、Windows Explorer を使用して zip パッケージを開いて、内容をターゲット フォルダにコピーします。
sumojanus-salesforce-dist.3.1.0.zip
ステップ 4: SFDC バンドルの設定
- 展開した sumojanus-salesforce フォルダに移動します。
- conf/sumologic.properties ファイルを開き、次のセクションをファイルの末尾に追加します (ファイルの既存の内容は一切上書きしないでください)。
[salesforce]
url = <Salesforce Instance URL>
token_file_path = ${path}/data/salesforce.token
record_file_path = ${path}/data/sf_readfiles.dat
# if you are using a SFDC sandbox environment, set the following to true
sandbox = false
interval = daily
- 以下のプロパティを設定します。
-
url—
Salesforce URL を参照します。例:
https://na25.salesforce.com
sandbox—
サンドボックス環境を使用している場合は、このプロパティをtrue
に設定します。デフォルトではfalse
に設定されています。start_time—
start_time
を指定しない場合、過去 2 日間のログが収集されます。interval
—日次ログを収集するか 1 時間ごとのログを収集するかを制御します。この手順の後半にある「ステップ 7: スクリプト Source の設定」で指定する [Frequency (頻度)] の設定はinterval
設定に対応する必要があります。
-
conf/sumologic.properties ファイルでは、以下のプロパティがサポートされています。
プロパティ | 必須またはデフォルト | 説明 |
url | 必須 | インスタンス URL (例:https://na31.salesforce.com/ |
token_file_path | 必須 | SFDC API で認証するアクセス トークン ファイルへのパス |
convert_csv_to_json | 任意、デフォルト: true | 出力が JSON である必要がある場合は true に設定します。これは、SF からの未処理のイベント ログが CSV 形式であるためです。 |
record_file_path | 任意、デフォルト: ${path}/sf_readfiles.dat | 正常に読み取られたログ イベント ファイルのリストを格納するためのパス。 |
sandbox | 任意、デフォルト: false | URL がサンドボックス インスタンスを参照する場合は true に設定します。 |
start_time | 任意、デフォルト: 2 日前 | エポックが収集を開始してからのミリ秒数 (たとえば、1450137600000)。 |
end_time | 任意、デフォルト: now | エポックが収集を停止してからのミリ秒数。 |
interval |
任意、デフォルト: daily |
対応するログ ファイルの場合は daily または hourly に設定します。 |
ステップ 5: JRE パスの設定
Windows での SumoJanus_SF.bat の更新
SumoJanus をインストールしたフォルダに移動し、テキスト エディタで SumoJanus_SF.bat を開きます。下記のように、このスクリプトの 3 行目で JAVAPATH
が C:\Program Files\Sumo Logic Collector\jre\bin
に設定されています。
set JAVAPATH="C:\Program Files\Sumo Logic Collector\jre\bin"
Collector の JRE が別の場所にある場合は、それに合わせて 3 行目を更新します。
Linux での SumoJanus_SF.bash の更新
SumoJanus をインストールしたフォルダに移動し、テキスト エディタで SumoJanus_SF.bash を開きます。次のようにスクリプトを更新します。
- JRE の場所を参照するように
JAVA_HOME
を設定する行をスクリプトの最後の行の直前に追加します。たとえば、Collector の JRE が/opt/SumoCollector/jre/bin
にある場合は、次の行を挿入します。
JAVA_HOME=/opt/SumoCollector/jre/bin
-
スクリプトの最後の行は次のとおりです。
java -jar ${SUMOJANUS_JAR_FILE} ${runMode} SalesforceCollector-3.1.0.jar -e 1800
次のように、この行の前に$JAVA_HOME/
を付けます。
$JAVA_HOME/java -jar ${SUMOJANUS_JAR_FILE} ${runMode} SalesforceCollector-3.1.0.jar -e 1800
ステップ 6: Salesforce での認証
上記のステップが完了したら、このセクションで説明する作業を使用して、インストールを認証する必要があります。
インストールを認証するには、次の手順を実行します。
- Salesforce をログアウトします。>
- 展開した
sumojanus-salesforce
フォルダで次のコマンドを実行します。- Unix 系のシステムの場合:
bin/SumoJanus_SF.bash -s
- Windows の場合:
bin\SumoJanus_SF.bat -s
- Unix 系のシステムの場合:
- ブラウザが開きます (開かない場合、下記の「ブラウザが開かない場合」を参照)。
- ブラウザがすでに Salesforce で認証されている場合、アクセス権が付与されたことを示すメッセージが表示されます。
- 認証していない場合、Salesforce ログインが表示されます。資格情報を入力 (必要な権限あり) してアクセス権を付与します。
- トークン ファイルが作成されたことを示す次のメッセージが表示されます。
bin/SumoJanus_SF.bash -s
を実行したセッションは閉じないでください。
ブラウザが開かない場合
ターゲット環境に GUI がない場合、たとえば環境にリモート アクセスしている場合、SumoJanus はブラウザを開くことができず、代わりに CLI へのリンクを出力します。そのリンクをコピーしてブラウザに貼り付けます。続いて、Salesforce での認証および承認プロセスを実行していくと、次のような URL が再び表示されます。
http://localhost:8080/?code=<some_value>&state=<some_value>
ブラウザに下記のようなエラー メッセージが表示されます。このメッセージは無視しても問題ありません。
ブラウザから URL をコピーし、「https」を「http」に変更してから (ブラウザを別のマシンで実行している場合は) スクリプトが実行されているのと同じマシンで、以下のいずれかのオプションを使用してください。
- Linux の場合は、ターミナル ウィンドウを開いて、次のコマンドを実行します。
curl -X GET ‘the above url’
- Windows の場合は、Powershell ウィンドウを開いて、次のコマンドを実行します。
Invoke-WebRequest ‘the above url’ -Method Get
すべて正常に実行されると、「Thank you for granting access for SumoLogic SalesforceCollector (SumoLogic SalesforceCollector へのアクセス権を付与して頂きありがとうございます)」というメッセージが表示されます。代わりに認証コードの期限が切れたというエラー メッセージが表示された場合は、前述のように、このステップを 30 秒以内に完了するようにしてください。
上記のステップ 4 で表示されたのと同じような、トークン ファイルが作成されたことを示す確認メッセージが表示されます。
設定の確認
- 設定が正しいことを確認するには、
sumojanus-salesforce
フォルダから次のコマンドを実行します。- Unix 系のシステムの場合:
bin/SumoJanus_SF.bash
- Windows の場合:
bin\SumoJanus_SF.bat
-s
フラグを付けずに実行してください)。 - Unix 系のシステムの場合:
- 次のような画面が表示されます (少し長くなる場合があります)。
- 作成したばかりの sf_readfiles.dat ファイルを削除します。このファイルは data フォルダにあります。
ステップ 7.スクリプト Source の設定
Sumo Logic で、「スクリプト Source」の手順に従ってスクリプト Source を設定します。バージョン 19.245-4 以降の新しい Collector では、スクリプト Source の作成はデフォルトでは禁止されています。スクリプト Source を許可するには、user.properties 内の Collector のパラメータ enableScriptSource=true
を true に設定する必要があります。
Salesforce 用の Sumo Logic アプリケーションでは、次の設定を使用します。
- Frequency (頻度):
- 日次ログ ファイルの場合、頻度を 6 時間ごとに設定します。
- 1 時間ごとのログ ファイルの場合、頻度を 1 時間に設定します。
- Specify a timeout for your command (コマンドのタイムアウトを指定):
- 日次ログ ファイルの場合、タイムアウトを 3 時間ごとに設定します。
- 1 時間ごとのログ ファイルの場合、タイムアウトを 1 時間に設定します。
- Command (コマンド): /bin/bash
- Unix 系のシステムの場合:
/bin/bash
- Windows の場合: Windows スクリプト
- Unix 系のシステムの場合:
- 実行するスクリプトのパスの入力
[Working Directory (作業ディレクトリ)] に sumojanus フォルダのフル パスを設定します。以下に例を示します。- Unix 系のシステムの場合:
/opt/SumoCollector/sumojanus/bin/SumoJanus_SF.bash
- Windows の場合:
c:\Program Files\SumoCollector\sumojanus\bin\SumoJanus_SF.bat
- Unix 系のシステムの場合:
Salesforce 用の既存の SumoJanus インストール環境のアップグレード
このセクションでは、Salesforce 用の既存の SumoJanus インストール環境をアップグレードする手順を説明します。
以前に設定した SumoJanus パッケージをアップグレードするには、次の手順を実行します。
ログ メッセージのサンプル
{ "EVENT_TYPE":"Report", "TIMESTAMP":"20171002172229.677", "REQUEST_ID":"423LBHidMGMvdMH5Tie2a-", "ORGANIZATION_ID":"00XT0000000ABmu", "USER_ID":"006X0000006TZhh", "RUN_TIME":"606", "CPU_TIME":"90", "CLIENT_IP":"38.99.50.98", "URI":"/00OE0000003MThb", "REQUEST_STATUS":"S", "DB_TOTAL_TIME":"475884875", "ENTITY_NAME":"", "DISPLAY_TYPE":"S", "RENDERING_TYPE":"W", "REPORT_ID":"00OE0000003MThb", "NUMBER_EXCEPTION_FILTERS":"0", "NUMBER_COLUMNS":"3", "SORT":"", "DB_BLOCKS":"65351", "DB_CPU_TIME":"430", "NUMBER_BUCKETS":"2", "TIMESTAMP_DERIVED":"2016-02-08T21:55:55.667Z", "USER_ID_DERIVED":"006X0000006TZhhIAG", "USER_ID_DERIVED_LOOKUP":"saad@acme.com", "URI_ID_DERIVED":"00OE0000003MThbMAG", "REPORT_ID_DERIVED":"00OE0000003MThbMAG", "REPORT_ID_DERIVED_LOOKUP":"g Current Q MQL(C) by LC" }
クエリのサンプル
最もアクセスされたレポート
_sourceCategory=salesforce event type "Report"
| json "REPORT_ID_DERIVED","REPORT_ID_DERIVED_LOOKUP" as report_id, report_name
| count by report_name, report_id
| format("%s : %s",report_name, report_id) as report_id
| count by report_id
| sort by _count desc | top 20 report_id by _count
- Working Directory (作業ディレクトリ):
- Unix 系のシステムの場合:
/opt/SumoCollector/sumojanus
- Windows の場合:
c:\Program Files\SumoCollector\sumojanus
- Unix 系のシステムの場合:
- Advanced Options for Logs (ログの詳細オプション):
- Timezone (タイムゾーン): [UTC] を選択します。
- Timestamp Format (タイムスタンプ形式): yyyy-MM-dd’T’HH:mm:ss.SSS
- Timestamp Locator (タイムスタンプ ロケータ):TIMESTAMP_DERIVED\":\"([^\"]+)\"
-
ステップ 5 の説明に従って、JRE パスを設定します。
-
以前の sumojanus フォルダにある以下のファイルを、新しい sumojanus-salesforce フォルダの対応するサブフォルダにコピーします。
-
conf/sumologic.properties
-
data/salesforce.token
-
data/sf_readfiles.dat
-
- ステップ 6 の説明に従って、設定をテストします。
- SumoLogic UI からステップ 7 で作成したスクリプト Source を確認し、スクリプトと作業ディレクトリのパスを変更して、新しく作成されたそれぞれのディレクトリを指すようにします。