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

このページでは、Cloud Logging によるログの転送方法を制御するエクスポート シンクの概要を説明します。

シンクを使用すると、ログの一部またはすべてを選択できる宛先に転送できます。また、ログエントリを Cloud Logging に保存しないようにすることもできます。ログの転送は、次の目的のために制御することをおすすめします。

  • 読み取る可能性は低いものの、コンプライアンスを目的にログを保持するため。
  • ログに対してビッグデータ分析ツールを使用するため。
  • 他のアプリケーション、他のリポジトリ、またはサードパーティにログをストリーミングするため。

シンクの仕組み

Cloud Logging API に書き込まれたすべてのログエントリは、ログルーターを通ります。ログエントリが Cloud プロジェクト、フォルダ、請求先アカウント、または組織リソースに到着するたびに、Logging では、ログエントリと、リソースに関連付けられているシンクのフィルタが比較されます。

ログシンクの構成(フィルタや宛先など)に応じて、Cloud Logging が受信するすべてのログエントリは、次のカテゴリの 1 つ以上に分類されます。

  • Cloud Logging に保存され、他の場所には転送されない
  • Cloud Logging に保存され、さらに、サポートされている宛先へ転送される
  • Cloud Logging には保存されず、サポートされている宛先に転送される
  • Cloud Logging には保存されず、他の場所にも転送されない
    • こうしたログは完全に除外されます。

Cloud Logging には、Google Cloud プロジェクトごとに 2 つのログシンク(_Required_Default)が事前定義されています。Google Cloud プロジェクトで生成されたすべてのログは、これら 2 つのログシンクを通して自動的に処理され、対応する名前のログバケット_Required_Default)に保存されます。

これらのログシンクは、別々に動作します。事前定義されたログシンクによるログエントリの処理方法にかかわらず、シンクを作成して一部またはすべてのログをさまざまな選択できる宛先に転送するか、すべてのログを Cloud Logging で保存しないように除外することが可能です。

通常は、複数のシンクが複数の Google Cloud プロジェクトに作成されます。複数のシンクを、特定の組織、フォルダ、または請求先アカウントに設定するには、集約シンクを使用します。

シンクがログを転送する仕組みの詳細については、ログルーターの概要をご覧ください。

選択できる宛先

ログの転送では、転送するログエントリを選択するフィルタ付きのシンクを作成し、次の中から宛先を選択します。

  • Cloud Storage: Cloud Storage バケットに JSON ファイルで保存。低価格の長期ストレージを提供します。
  • BigQuery: BigQuery データセットにテーブルを作成。ビッグデータ分析機能を提供します。
  • Pub/Sub: Pub/Sub トピックに JSON 形式のメッセージで配信。Splunk などのサードパーティとの Logging の統合がサポートされます。
  • Cloud Logging: ログバケットにログエントリで保持。カスタマイズ可能な保持期間を持つ Cloud Logging のストレージが提供されます。

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

シンクには、前述のフィルタや宛先など、いくつかのプロパティがあります。

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

  • 親リソース: シンクを作成する Google Cloud リソース。親は、次のいずれかです。

    • projects/PROJECT_ID
    • folders/FOLDER_ID
    • billingAccounts/BILLING_ACCOUNT_ID
    • organizations/ORGANIZATION_ID

    シンクは、親リソースに属するログを転送します。また、集約シンクを使用して、Google Cloud 組織のすべての Cloud プロジェクト、フォルダ、請求先アカウントのログを組み合わせて転送することもできます。

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

    projects/PROJECT_ID/sinks/SINK_ID

  • 包含フィルタ: このシンクを介して転送するログエントリを選択します。包含フィルタの例については、サンプルクエリをご覧ください。

  • 除外フィルタ: ログエントリがシンクの包含フィルタと一致する場合でも、転送から明示的に除外するログエントリを選択します。

    なお、1 つのシンクには、複数の除外フィルタを含めることができます。いずれかのフィルタがログエントリと一致する場合、そのログエントリは転送から除外されます。

  • エクスポート先: フィルタに一致するログエントリを送信する場所。選択できる宛先の名前は次のとおりです。

    • 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

    • Logging ログバケット: logging.googleapis.com/projects/PROJECT_ID/locations/REGION/buckets/BUCKET_ID

    また、ログ エクスプローラでは、シンクの作成ある Cloud プロジェクトから別の Cloud プロジェクトの宛先にログを送信する際、カスタムの宛先も指定できます。

    宛先がシンクのサービス アカウントを書き込み者として承認する場合は、任意の Cloud プロジェクトの宛先にログを転送できます。

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

    GENERATED_ID_1@GENERATED_ID_2.iam.gserviceaccount.com

    詳細については、エクスポート先の権限をご覧ください。

  • includeChildren: このプロパティについては、集約シンクをご覧ください。これは、組織、フォルダ、請求先アカウント用に作成されたシンクにのみ関連します。

シンクの詳細については、LogSink タイプをご覧ください。

アクセス制御

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

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

料金

Cloud Logging ではログの転送は課金されませんが、転送先での請求が適用されることがあります。詳細については、該当するサービスの料金詳細をご覧ください。

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

次のステップ

ログの転送

ログを転送するシンクを作成し管理する方法については、次のページをご覧ください。

ログを検索して利用する

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

Logging の転送シナリオを確認する

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