Salesforceの導入サポート、開発・連携を行う(株)FDCのエンジニアチームが、Salesforce APIを使ったイベントログの取得方法と実践的な活用法を詳しく解説します。

イベントログは、システムの利用状況やセキュリティ監査、パフォーマンス分析に欠かせない重要なデータです。ぜひこの記事を読んでいただいて、APIを使ったログ取得の基礎から実践的な活用方法をつかんでみてください。

株式会社エフ・ディー・シーはSalesforceコンサルティングパートナー

Salesforceのイベントログとは

Salesforceのイベントログとは、組織内で発生したさまざまな操作やイベントを記録したデータのことです。ユーザーのログイン情報、API呼び出しの履歴、レポートのエクスポート、データアクセスなど、50種類以上のイベントが記録されています。

これらのログデータは、EventLogFileオブジェクトを通じてアクセスでき、CSV形式で保存されています。各ログファイルには、イベントが発生した日時、実行したユーザー、処理内容などの詳細情報が含まれており、システム管理者やセキュリティ担当者にとって非常に価値の高い情報源となります。

イベントログの保存期間と種類

イベントログには、「24時間ごとのログ」と「1時間ごとのログ」の2種類があります。保存期間は以下の通りです。

ログの種類保存期間特徴
24時間ごとのログ30日間(Event Monitoringライセンス保有時)UTC時間の午前12:00から午後11:59までの完全なデータ
1時間ごとのログ30日間(Event Monitoringライセンス保有時)直近のイベントを素早く確認可能(3~6時間後に利用可能)
Developer Edition組織1日間テスト・開発用途での利用

なお、イベントモニタリング設定で「イベントログファイルの保持」を有効にすると、ログを1年間(365日)保持できるようになります

Salesforce APIでイベントログを取得する方法

Salesforce APIを使用してイベントログを取得する方法は複数あります。ここでは、主要な3つの方法について詳しく解説します。

REST APIを使った取得方法

REST APIは、HTTPプロトコルを使用してSalesforceデータとやり取りを行う最も一般的な方法です。EventLogFileオブジェクトに対してクエリを実行することで、イベントログを取得できます。

基本的な取得手順は以下の通りです。

  1. OAuth 2.0またはJWT認証を使用してアクセストークンを取得します
  2. EventLogFileオブジェクトに対してSOQLクエリを実行します
  3. 取得したログファイルのLogFile項目(Base64エンコード)をデコードします
  4. CSV形式のログデータを解析・保存します

REST APIを使用する際のエンドポイント例:

/services/data/v60.0/query/?q=SELECT+Id,+EventType,+LogDate,+LogFile+FROM+EventLogFile+WHERE+LogDate+=+TODAY

このクエリは、当日生成されたすべてのイベントログファイルを取得します。EventType項目を指定することで、特定の種類のログのみを取得することも可能です。

SOAP APIを使った取得方法

SOAP APIは、XMLベースのWebサービスプロトコルを使用する方法です。REST APIと同様に、EventLogFileオブジェクトに対してクエリを実行できます。

SOAP APIは、エンタープライズレベルのシステム統合において、より厳密な型チェックやトランザクション管理が必要な場合に適しています。ただし、2027年のSummer ’27リリースにおいて、APIバージョン31.0~64.0のSOAP API login()が廃止される予定となっているため、OAuth認証への移行を検討する必要があります。

Apexを使った取得方法

Salesforce内部からログを取得する場合は、Apexコードを使用する方法もあります。SOQLクエリを実行することで、EventLogFileオブジェクトのデータを直接取得できます。

Apexでの取得例:

List<EventLogFile> logs = [SELECT Id, EventType, LogDate, LogFile FROM EventLogFile WHERE EventType = 'Login' AND LogDate = TODAY];

この方法は、Salesforce内部での自動化処理やバッチ処理に適しており、外部システムとの連携が不要な場合に効率的です。

主要なイベント種別とその活用法

EventLogFileオブジェクトでは、50種類以上のイベント種別がサポートされています。ここでは、特に重要な活用シーンの多いイベント種別をご紹介します。

セキュリティ監査に活用できるイベント

セキュリティ対策において重要なイベント種別は以下の通りです。

  • Login:ユーザーのログイン情報を記録します。ログイン時刻、IPアドレス、ブラウザ情報などが含まれ、不正アクセスの検知に活用できます
  • Logout:ユーザーのログアウト情報を記録します。セッション時間の分析に有用です
  • ReportExport:レポートのエクスポート操作を記録します。機密情報の持ち出しを監視できます
  • ContentTransfer:ファイルのダウンロードやアップロードを記録します。データ流出のリスク管理に役立ちます

これらのログを定期的に分析することで、セキュリティインシデントの早期発見や、コンプライアンス要件への対応が可能になります。

パフォーマンス分析に活用できるイベント

システムのパフォーマンス改善には、以下のイベント種別が有効です。

  • API:SOAP API、REST API、Bulk APIのすべての要求を記録します。API使用状況の把握やボトルネック特定に活用できます
  • ApexExecution:Apexコードの実行情報を記録します。CPU時間や実行時間の分析により、パフォーマンスチューニングが可能です
  • Report:レポート実行の詳細を記録します。重いレポートの特定や最適化に役立ちます
  • URI:ページへのアクセス情報を記録します。ユーザーの行動パターンや人気ページの分析ができます

利用状況分析に活用できるイベント

組織の利用状況を把握するには、以下のイベントが重要です。

  • API Total Usage:Platform SOAP API、Platform REST API、Bulk API要求の詳細を含む、API使用量の総計を記録します(追加費用なしで利用可能)
  • Dashboard:ダッシュボードのアクセス情報を記録します。どのダッシュボードが頻繁に使用されているかを把握できます
  • Flow:フローの実行情報を記録します。自動化プロセスの利用状況を分析できます

イベントログの実践的な活用シーン

取得したイベントログを実際のビジネスシーンでどのように活用できるか、具体例をご紹介します。

セキュリティ監査とコンプライアンス対応

金融機関や医療機関など、厳格なコンプライアンス要件がある業界では、すべてのデータアクセスと操作の記録が義務付けられています。イベントログを活用することで、以下のような監査要件に対応できます。

  • 誰が、いつ、どのデータにアクセスしたかの追跡
  • 通常とは異なるアクセスパターンの検知
  • 機密情報のエクスポートやダウンロードの監視
  • 監査証跡としての長期保存とレポート作成

特にLoginイベントとReportExportイベントを組み合わせることで、不審なアクセスや大量データの持ち出しを早期に発見できます。

システムパフォーマンスの最適化

APIイベントやApexExecutionイベントを分析することで、システムのボトルネックを特定し、パフォーマンス改善につなげることができます。

具体的な活用例:

  • CPU_TIME項目を分析して、処理時間の長いApexクラスを特定
  • RUN_TIME項目から、レスポンスタイムの遅いAPI呼び出しを発見
  • ROW_COUNT項目で、大量データを処理しているクエリを把握
  • 時間帯別のアクセス集中を分析し、リソース配分を最適化

ユーザー行動分析と利用促進

URIイベントやDashboardイベントを活用することで、ユーザーがどの機能を頻繁に使用しているか、逆にどの機能が使われていないかを把握できます。

この情報は、以下のような改善活動に役立ちます。

  • 利用率の低い機能に対するトレーニングの実施
  • 頻繁にアクセスされるページのUI/UX改善
  • 業務プロセスの見直しと最適化
  • カスタマイズの優先順位付け

イベントログ取得時の注意点とベストプラクティス

イベントログを効果的に活用するために、以下の注意点とベストプラクティスを押さえておきましょう。

API制限とパフォーマンスへの配慮

Salesforce APIには、24時間あたりの呼び出し制限があります。大量のログを取得する際は、バッチ処理やスケジューリングを適切に設計することが重要です。

  • 1日1回のバッチ処理で前日分のログをまとめて取得する
  • EventType項目で必要なイベント種別のみを絞り込む
  • LogDate項目を使用して取得期間を限定する
  • 取得したログは外部ストレージに保存し、長期保管する

データの重複と欠損への対応

Salesforce公式ドキュメントによると、サイト切り替えやシステム停止時に、ログデータの重複や欠損が発生する可能性があります。これに対処するため、以下の対策を推奨します。

  • CreatedDate項目を使用して最新のログファイルを確認する
  • Sequence項目で1時間ごとのログの連続性をチェックする
  • アプリケーション側で重複イベントの処理ロジックを実装する
  • 24時間ごとのログを基本とし、1時間ごとのログは補助的に使用する

認証とセキュリティのベストプラクティス

API経由でイベントログにアクセスする際は、適切な認証方式を選択することが重要です。2025年現在、以下の認証方式が推奨されています。

認証方式推奨シーン特徴
OAuth 2.0 JWT Bearer Flowサーバー間連携ユーザー介在が不要で自動化に最適
OAuth 2.0 Web Server FlowWebアプリケーションユーザー承認フローを含む安全な認証
OAuth 2.0 Username-Password Flow信頼できる内部アプリケーションシンプルだが、セキュリティリスクがやや高い

特にサーバー間連携では、OAuth 2.0 JWT Bearer Flowの使用が強く推奨されます。この方式では、証明書ベースの認証により、パスワード管理のリスクを排除できます。

ログ分析の自動化と可視化

取得したイベントログを手動で分析するのは非効率です。以下のような自動化・可視化の仕組みを構築することを推奨します。

  • 定期的にログを取得し、データウェアハウスやBIツールに連携する
  • 異常なパターンを検知するアラート機能を実装する
  • ダッシュボードで主要指標をリアルタイムに可視化する
  • 機械学習を活用した異常検知や予測分析を導入する

まとめ:Salesforce APIを活用したイベントログ管理

いかがだったでしょうか、今回はSalesforce APIを使ったイベントログの取得方法と活用法について詳しく解説してきました。

この記事を読むことで、ある程度は仕組みややり方についてご理解いただけたと思いますが、やはりエンジニア領域のこともあり、自社内では難しそうだな、と感じられている方もいらっしゃるかもしれません。

そんな方におすすめなのが、弊社(株)エフ・ディー・シーが提供している「SFsolution」。

これはSalesforce導入・活用サポートサービスで、数多くの企業様にご利用いただいています。

もちろん今回のトピックスであるAPIについてもサポート可能ですので、興味をお持ちの方はお問い合わせ、もしくは資料ダウンロードをしていただければ幸いです。

株式会社エフ・ディー・シーはSalesforceコンサルティングパートナー