Events Log Track
ノード、ユーザー、タクソノミー、メディアなど、さまざまなDrupalエンティティタイプに対してユーザーが実行した作成、更新、削除(CUD)操作を追跡する包括的なイベントログモジュールです。
events_log_track
概要
Events Log Trackは、ユーザーアクションとシステムイベントをデータベーステーブルに記録する、Drupal向けの強力な監査・ログモジュールです。誰が、いつ、どのIPアドレスから、どのコンテンツに対して、どのようなアクションを実行したかについての詳細情報をキャプチャします。
このモジュールは、ベースモジュールと複数のサブモジュールからなる柔軟なアーキテクチャを提供し、サイト管理者は特定のエンティティタイプや操作に対するトラッキングを選択的に有効化できます。イベントはデータベースに保存され、フィルタリングとソート機能を備えたViewsベースのインターフェースで /admin/reports/events-track から閲覧できます。
エンタープライズ環境やコンテナ化されたデプロイメント向けに、モジュールはsyslogおよびstdoutと統合して外部ログ集約を行います。また、cronによる古いログエントリの自動クリーンアップをサポートし、高トラフィックサイトでのデータベース肥大化を防止します。
このモジュールはhookベースのAPIを通じて容易に拡張可能で、開発者は任意のフォーム送信やエンティティ操作に対するカスタムイベントトラッキングを追加できます。
Features
- ログイン、ログアウト、パスワードリセットリクエスト、ログイン失敗を含むユーザー認証イベントを追跡
- ノード、ユーザー、タクソノミーターム、メディア、ファイル、コメント、メニュー項目に対する作成、更新、削除操作をログ記録
- YAML形式での変更前後の比較付きで設定変更を記録
- Content Moderationを使用したノードとグループのワークフロー状態遷移を追跡
- ユーザー帰属付きでキャッシュクリア操作をログ記録
- タイプ、操作、ユーザー、IPアドレス、説明、日付範囲のフィルターを備えた包括的なViewsベースのログビューアを提供
- カスタマイズ可能なトークンベースのメッセージ形式を使用して外部ログ集約用にsyslogと統合
- log_stdoutモジュール経由でDockerおよびコンテナ化環境向けのstdout/stderr出力をサポート
- 設定可能な保持期間でcronによる古いログエントリの自動クリーンアップ
- 柔軟なログメッセージフォーマットを可能にするイベントログデータ用Tokenシステム
- CLI操作のログ記録を個別に有効/無効化可能
- 同時ログインを追跡するための認証イベントのセッションカウント
- グループおよびグループメンバーシップ操作追跡用のGroupモジュール統合
- カスタムイベントハンドラ追加用の拡張可能なhookベースAPI
Use Cases
セキュリティ監査とコンプライアンス
Events Log Trackを使用して、SOC 2、HIPAA、GDPRなどのセキュリティコンプライアンス要件のためのすべてのユーザーアクションの監査証跡を維持します。誰がどのコンテンツにアクセスしたか、いつアカウントが変更されたか、特定のIPアドレスからのログイン失敗などの疑わしいアクティビティを追跡・特定します。
コンテンツ変更追跡
node、taxonomy、mediaサブモジュールを有効にして、サイト上のすべてのコンテンツ変更を監視します。誰がコンテンツを作成、編集、削除したかの完全な履歴を表示でき、不正な変更の特定や編集ワークフローの追跡が容易になります。
ユーザーアクティビティ監視
アカウント作成、ロール割り当て、パスワードリセット、ログイン/ログアウトイベントを含むユーザーアカウント管理アクティビティを追跡します。複数の同時セッションを持つアカウントや異常なログインパターンを特定します。
設定変更監査
configサブモジュールを有効にして、詳細な変更前後の比較付きですべての設定変更を追跡します。デプロイ後の問題のデバッグや不正な設定変更の特定に不可欠です。
Docker/Kubernetesログ集約
コンテナ化されたデプロイメントでは、stdoutサブモジュールを使用してイベントログをstdout/stderrに出力します。これにより、ELKスタック、Splunk、CloudWatchなどのコンテナオーケストレーションログシステムと統合して一元的なログ管理が可能になります。
キャッシュクリア追跡
キャッシュクリア操作を監視して、パフォーマンス問題が過度のキャッシュクリアに関連しているかどうかを特定し、どのユーザーがキャッシュをクリアしているかを判断します。
Tips
- データベース書き込みとパフォーマンスオーバーヘッドを最小限に抑えるため、必要なサブモジュールのみを有効化してください
- 高トラフィックサイトでは、データベース肥大化を防ぐためにsyslogまたはstdout統合を使用し、データベースログ記録を無効にすることを検討してください
- 合理的なデータベースサイズを維持するために、設定ページで自動ログクリーンアップを設定してください
- CLIログ記録オプションは、マイグレーションやインポート中に多くのログエントリを生成する可能性があるため、慎重に使用してください
- ViewsベースのログビューアはエクスポートなどすべてのViews標準機能をサポートしているため、ログをCSVにエクスポートできます
- 特定のイベントタイプやユーザーアクティビティサマリーを表示するカスタムViewsを作成してください
- セキュリティに敏感なサイトでは、コンプライアンス目的で監査履歴を維持するために、より長いタイムスパン制限を設定することを検討してください
Technical Details
Admin Pages 3
/admin/config/system/events-log-track
ログ保持、データベースログ記録、CLIログ記録オプションを含むEvents Log Trackモジュールの設定を構成します。
/admin/reports/events-track
すべての追跡されたイベントを表示・フィルタリングします。LID、タイプ、操作、名前、ID、説明、ユーザー、IP、作成日のソート可能な列を持つテーブルを表示します。イベントタイプ、操作、ユーザー、説明、IPアドレス、参照値、日付範囲によるフィルタリング用のフィルターを含みます。
/admin/config/development/logging
Events Log Track Syslogサブモジュールが有効な場合、トークンを使用したsyslogメッセージ形式を設定するための追加フィールドが表示されます。
権限 1
Hooks 3
hook_event_log_track_handlers
追跡すべきフォーム送信またはエンティティ操作を定義するイベントハンドラを登録します。各ハンドラはイベントタイプ、監視するフォームID、コールバック、利用可能な操作を指定します。
hook_event_log_track_handlers_alter
モジュールが登録されたイベントハンドラを変更できるようにします。
hook_event_log_track_alter
モジュールがログエントリデータをデータベースに保存またはsyslogに送信する前に変更できるようにします。
Security Notes 5
- イベントログにはユーザーアクティビティに関する機密情報が含まれる場合があるため、適切にアクセス制限する必要があります
- 'access event log track'権限は信頼できる管理者にのみ付与してください
- IPアドレスがログに記録され、一部の管轄区域ではプライバシー規制の対象となる場合があります
- 自動削除のタイムスパン制限を設定する際は、データ保持要件を考慮してください
- syslogメッセージにはユーザー情報が含まれる場合があるため、syslogの送信先が適切に保護されていることを確認してください