ログのエクスポートの概要

このページでは、Cloud Logging を使用してログをエクスポートするコンセプトの概要について説明します。

ログをエクスポートする方法については、このページの次のステップをご覧ください。

Cloud Logging の外部でログの一部またはすべてのコピーをエクスポートできます。次のような理由でログのエクスポートが必要な場合があります。

  • 長期間ログを保存するため。ログ保存期間は通常、年単位ではなく週単位です。詳しくは、ログの保持期間をご覧ください。
  • ログに対してビッグデータ分析ツールを使用するため。
  • 他のアプリケーション、他のリポジトリ、またはサードパーティにログをストリーミングするため。

一般的なログのエクスポート シナリオの詳細については、Cloud Logging にエクスポートする設計パターン: ログのエクスポート シナリオをご覧ください。

エクスポートの仕組み

次の図は、Cloud Logging がエクスポートされたログエントリを処理する方法を示しています。

Cloud Logging がログエントリをルーティングする方法を示す図。

監査ログ、プラットフォーム ログ、ユーザーログを含むすべてのログは、Cloud Logging API に送信され、ここでログルーターを通過します。ログルーターは、各ログエントリを既存のルールと照合して、取り込む(保持する)ログエントリ、エクスポートに含めるログエントリ、破棄するログエントリを決定します。詳しくは、ログルーターの概要をご覧ください。

エクスポートは、エクスポートするログエントリを選択するクエリを書くことと、Cloud Storage、BigQuery、Pub/Sub でエクスポート先を選択することを含みます。クエリとエクスポート先は、シンクと呼ばれるオブジェクトに保持されます。Google Cloud のプロジェクト、組織、フォルダ、請求先アカウントでシンクを作成できます。

シンクのプロパティと用語

シンクには次のプロパティがあります。

  • シンク識別子: シンクの名前。例: my-vm-error-sink

  • 親リソース: シンクを作成するリソース。親はほとんどの場合プロジェクトですが、次のいずれかになります。

    "projects/[PROJECT_ID]"
    "folders/[FOLDER_ID]"
    "billingAccounts/[BILLINGACCOUNT_ID]"
    "organizations/[ORGANIZATION_ID]"
    

    シンクは、その親リソースに属するログのみをエクスポートできます。このルールの例外については、次の集約エクスポート プロパティをご覧ください。

    シンクの完全なリソース名には、その親リソースとシンク識別子が含まれます。例:

    "projects/[PROJECT_ID]/sinks/[SINK_ID]"
    
  • ログフィルタ: このシンクからエクスポートするログエントリを選択します。クエリの例については、サンプルクエリをご覧ください。

  • エクスポート先: クエリに一致するログエントリを送信する単一の場所。サポートされているエクスポート先は 3 つあります。

    • Cloud Storage バケットは、安価で長期的なストレージを提供します。

      storage.googleapis.com/[BUCKET_ID]
      
    • BigQuery データセットは、ビッグデータ分析機能を提供します。

      bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET_ID]
      
    • Pub/Sub トピックは、他のアプリケーションまたはリポジトリにログエントリをストリーミングします。

      pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]
      

    ログビューアでは、[独自のエクスポート先] オプションも使用できます。これは、別のプロジェクトのエクスポート先にログを送信するエクスポートを作成するときに使用します。詳しくは、シンクの作成をご覧ください。

    ログはどのプロジェクト内のエクスポート先にもエクスポートできます。ただし、エクスポート先がシンクのサービス アカウントの書き込み権限を承認する場合に限ります。

  • 書き込み ID: サービス アカウント名。エクスポート先のオーナーは、このサービス アカウントにエクスポート先への書き込み権限を付与する必要があります。ログのエクスポート時に、Logging はこの ID を承認に使用します。セキュリティを高めるために、新しいシンクは一意のサービス アカウントを取得します。

    [GENERATED_ID_1]@[GENERATED_ID_2].iam.gserviceaccount.com
    

    詳しくは、エクスポート先権限をご覧ください。

  • 集約エクスポートincludeChildren プロパティは集約エクスポートで説明されています。これは組織またはフォルダに作成されたシンクにのみ関連します。

シンクの詳細については、LogSink タイプ、projects.sinks.create API メソッド、API でのログのエクスポートをご覧ください。

シンクの仕組み

ログエントリがプロジェクト、フォルダ、請求先アカウント、または組織のリソースに到着するたびに、Logging はログエントリをそのリソース内のシンクと比較します。クエリがログエントリと一致する各シンクは、ログエントリのコピーをシンクのエクスポート先に書き込みます。

新しいログエントリに対してのみエクスポートが行われるため、シンクが作成される前に Logging が受信したログエントリはエクスポートできません。

アクセス制御

シンクを作成または変更するには、シンクの親リソースで Cloud Identity and Access Management 役割 Owner または Logging / ログ構成書き込みが必要です。既存のシンクを表示するには、シンクの親リソースで Cloud IAM 役割 Viewer または Logging / ログ閲覧者が必要です。詳しくは、アクセス制御をご覧ください。

ログをエクスポート先にエクスポートするには、シンクの書き込みサービス アカウントがエクスポート先への書き込みを許可されている必要があります。書き込み ID の詳細については、このページのシンク プロパティをご確認ください。

料金

エクスポートされたログに Cloud Logging の料金はかかりませんが、エクスポート先で料金が適用されることがあります。詳しくは、該当するプロダクトの料金のページをご覧ください。

Cloud Logging から Virtual Private Cloud フローログを送信して除外した場合は、エクスポート先料金に加え VPC フローログの生成料金が適用されることにもご注意ください。

次のステップ

ログをエクスポートする

ログをエクスポートする方法については、次のページをご覧ください。

エクスポートされたログを検索して使用する

エクスポートしたログエントリの形式と、エクスポートしたログをエクスポート先で整理する方法については、エクスポートしたログの使用に移動してください。

ログ エクスポート シナリオを探す

次のチュートリアルでは、ログをエクスポートするシナリオを説明します。各チュートリアルでは、要件、設定、使用方法について詳しく説明し、エクスポートの共有方法を示します。