集約エクスポート

組織では、集約エクスポート シンクを作成して、組織のすべてのプロジェクト、フォルダ、請求先アカウントのログエントリをエクスポートすることができます。たとえば、組織はこの機能を使用して、プロジェクトの監査ログエントリを 1 か所にまとめてエクスポートできます。

概念

集約エクスポート機能がないと、エクスポート シンクは、シンクが作成されたリソース(プロジェクト、組織、フォルダ、請求先アカウント)のログエントリをエクスポートすることのみができます。

組織またはフォルダでシンクを作成し、シンクの includeChildren パラメータを True に設定すると、そのシンクは組織またはフォルダのログエントリだけでなく、含まれているフォルダ、請求先アカウント、プロジェクトのログエントリを(再帰的に)エクスポートできます。シンクのフィルタによって、特定のプロジェクト、特定のリソースタイプ、特定の名前のログのログエントリを選択できます。

エクスポート シンクとその作成方法については、API でのログのエクスポートコマンドライン ツールを使用したシンクの作成をご覧ください。

エクスポート先の作成

ログシンクのエクスポート先は、Cloud SDK、Cloud Console、Cloud API のいずれかを介して、シンクの前に作成する必要があります。

エクスポート シンクのサポートされるエクスポート先は、次のとおりです。

ログシンクのサービス アカウントにエクスポート先への書き込み権限がある場合は、任意の組織の任意の GCP プロジェクトでエクスポート先を作成できます。

集約エクスポート シンクの作成

フォルダ、請求先アカウント、組織で集約エクスポート シンクを作成するには、Google Cloud API エンドポイントと gcloud コマンドライン ツールのいずれかを使用します。

Logging API

ロギングシンクを作成するには、Stackdriver Logging API の organizations.sinks.createfolders.sinks.createbillingAccounts.sinks.create を使用します。メソッドの引数を次のように準備します。

  1. parent パラメータを、シンクを作成する組織、フォルダ、または請求先アカウントに設定します。親は次のいずれかにする必要があります。

    organizations/[ORGANIZATION_ID]
    folders/[FOLDER_ID]
    billingAccounts/[BILLING_ACCOUNT_ID]
    

    注:

    • シンクを作成する親にはログ構成書き込みの IAM 役割が必要です。Stackdriver Logging IAM の役割の詳細については、アクセス制御ガイドをご覧ください。
  2. メソッドのリクエスト本文の LogSink オブジェクトで、次の設定を行います。

    • includeChildren を True に設定します。

    • すべてのプロジェクトのログエントリがフィルタと照合されることを考慮して filter プロパティを設定します。

      役立つフィルタの例については、このページの集約エクスポートでのフィルタの使用をご覧ください。

    • 残りの LogSink フィールドを他のシンクの場合と同様に設定します。詳細については、シンクを作成するをご覧ください。

  3. organizations.sinks.create または folders.sinks.create を呼び出してシンクを作成します。

  4. API レスポンスから、シンクの作成に使用されたサービス アカウント名を取得します。

  5. そのサービス アカウントにエクスポート先への書き込み権限を付与します。

    その変更をエクスポート先に加える権限がない場合は、自分に代わってその変更を行うことができる人にサービス アカウント名を送信します。

    サービス アカウントにリソースに対する権限を付与する方法の詳細については、サービス アカウントへの役割の付与をご覧ください。

Cloud SDK

ロギングシンクを作成するには、logging sinks create コマンドを使用します。

  1. シンク名、エクスポート先、ログフィルタと、フォルダ、請求先アカウント、または組織の ID を指定します。

    たとえば、次のようにフォルダ単位で集約エクスポートを設定します。

    gcloud logging sinks create [SINK_NAME]  \
    storage.googleapis.com/my-folder-bucket --include-children \
    --folder=[FOLDER_ID] --log-filter="logName:activity"
    

    注:

    • 組織単位でシンクを作成するには、--folder=[FOLDER_ID]--organization=[ORG_ID] に置き換えます。請求先アカウントの場合は、--billing-account=[BILLING_ACCOUNT_ID] に置き換えます。

    • シンクを作成する親にはログ構成書き込みの IAM 役割が必要です。Stackdriver Logging IAM の役割の詳細については、アクセス制御ガイドをご覧ください。

    • 役立つフィルタの例については、このページの集約エクスポートでのフィルタの使用をご覧ください。

  2. コマンド出力から、シンクの作成に使用されたサービス アカウント名を取得します。

  3. そのサービス アカウントにエクスポート先への書き込み権限を付与します。

    その変更をエクスポート先に加える権限がない場合は、自分に代わってその変更を行うことができる人にサービス アカウント名を送信します。

    サービス アカウントにリソースに対する権限を付与する方法の詳細については、サービス アカウントへの役割の付与をご覧ください。

集約エクスポートでのフィルタの使用

他のシンクと同様に、集約エクスポート シンクにも個々のログエントリを選択するフィルタが含まれます。以下に、集約エクスポート機能を使用するときに役立つフィルタ比較の例を示します。フィルタの詳細については、高度なログフィルタをご覧ください。一部の例で次の表記を使用しています。

  • : は部分文字列演算子です。= 演算子に置き換えないでください。
  • ... はさらにフィルタ比較が続くことを表します。

監査ログの選択

監査ログをエクスポートするには、次の比較例のいずれかを選択します。最初の例を使用すると、管理アクティビティとデータアクセスの両方の監査ログが選択されます。

logName:"/logs/cloudaudit.googleapis.com" AND ...
logName:"/logs/cloudaudit.googleapis.com%2Factivity" AND ...
logName:"/logs/cloudaudit.googleapis.com%2Fdata_access" AND ...

監査ログの詳細については、Cloud Audit Logging をご覧ください。

プロジェクトの選択

特定のプロジェクト、フォルダ、または組織からのログをエクスポートするには、次の比較例のいずれかを使用します。

logName:"projects/[PROJECT_ID]/logs/" AND ...
logName:("projects/[PROJ_A]/logs/" OR "projects/[PROJ_B]/logs/") AND ...
logName:"folders/[FOLDER_ID]/logs/" AND ...
logName:"organizations/[ORGANIZATION_ID]/logs/" AND ...

リソースの選択

プロジェクトの特定のリソースのログだけをエクスポートするには、複数の比較を使用してリソースを厳密に指定します。

logName:"projects/[PROJECT_ID]/logs" AND
  resource.type=[RESOURCE_TYPE] AND
  resource.labels.instance_id=[INSTANCE_ID]

リソースタイプの一覧については、モニタリング対象リソースのリストをご覧ください。

ログエントリのサンプリング

ログエントリのランダムなサンプルをエクスポートするには、sample 組み込み関数を追加します。たとえば、現在のフィルタと一致するログエントリの 10% だけをエクスポートするには、次の記述を追加します。

sample(insertId, 0.10) AND ...

詳細については、sample 関数をご覧ください。

Stackdriver Logging のフィルタの詳細については、高度なログフィルタをご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...