ログのリージョナライズ

このドキュメントでは、_Default シンクを使用して、ログエントリを特定のリージョンにある Cloud Logging バケットに転送する方法について説明します。サポートされているリージョンの一覧については、ロケーションをご覧ください。

組織またはフォルダのデフォルト設定を構成することで、新しい _Default バケットと _Required バケットのデフォルトのストレージのロケーションを設定することもできます。詳細については、デフォルトのストレージのロケーションを設定するをご覧ください。

このガイドでは、すべてのログを 1 つのリージョンにリダイレクトする例を使用して、このプロセスを説明します。このプロセスには、次のステップが含まれます。

  1. ログを保存するために、指定されたリージョンにログバケットを作成します。

  2. _Default シンクをリダイレクトして、ログを新しいログバケットに転送します。

  3. Logs Explorer でログを検索します。

概要

Logging では、ログバケットはリージョン リソースです。ログの保存、インデックス登録、検索を行うインフラストラクチャは特定の地理的な場所にあります。Google Cloud はそのインフラストラクチャを管理して、アプリケーションがそのリージョン内のゾーン全体で冗長的に利用できるようにします。

組織によっては、ログデータを特定のリージョンに保存しなければならない場合があります。組織のレイテンシ、可用性、またはコンプライアンスの要件を満たしていることが、ログを保存するリージョンを選択する際の主な判断材料になります。ログ ストレージのリージョンを選択するときは、アプリケーションが使用するその他の Google Cloud プロダクトとサービスのロケーションを考慮してください。

主なコンセプト

Cloud Logging のデータ リージョンには、次の主要なコンセプトが適用されます。

ログルーターのロケーション

Log Router は、Cloud Logging API に書き込まれたすべてのログエントリを処理します。各ログエントリを既存のルールと照合して、どのログエントリを Logging バケットに保存するか、シンクを使用してサポートされている宛先にどのログエントリをルーティングするかを判断します。また、ログを確実に転送するため、ログルーターもログを一時的に保存し、シンクの一時的な中断から保護します。

ログルーターは、ログが受信されたリージョン内でログを処理します。 ログルーターではシンクの定義によって、あるいは Security Command Center Threat Detection など別の Google Cloud サービスでログデータを共有することにしている場合は、ログを別のリージョンに送信することがあります。ログシンクは、リージョンに関係なく均等にログに適用されます。

ログバケットのロケーション

ログバケットは、ログデータを保存して整理する Google Cloud プロジェクト、請求先アカウント、フォルダ、組織のコンテナです。

Google Cloud プロジェクト、請求先アカウント、フォルダ、組織ごとに、Logging によって _Required_Default の 2 つのログバケットが自動的に作成されます。これらは global のロケーションにあります。既存のバケットのロケーションは変更できません。ただし組織では、これらのバケットに対して異なるデフォルトのロケーションを設定するポリシーを作成できます。詳細については、組織とフォルダのデフォルト設定を構成するをご覧ください。

任意の Google Cloud プロジェクトに対してユーザー定義のログバケットを作成することもできます。ユーザー定義のログバケットを作成するときに、ログバケットのロケーションを指定できます。ログバケットを作成した後でロケーションを変更することはできませんが、新しいバケットを作成し、シンクを使用してログエントリを新しいログバケットに転送することは可能です。バケットのロケーションを設定する方法については、ログをリージョン化するをご覧ください。

Logging では、複数のリージョンのログを一緒にクエリすることができます。その場合、クエリは、クエリ対象のバケットと同じロケーションで処理された後、クエリの受信元であったリージョンに集約されて結果が返されます。

ログバケットのリージョンは、[ログストレージ] ページと一部のダイアログに表示されます。たとえば、ログ エクスプローラ ページに移動し、[スコープを絞り込む] セレクタを使用してログビューを一覧表示すると、リージョン情報も表示されます。このセレクタで、リージョンが global の場合、リージョンと現在のストレージ ロケーションの両方が GLOBAL (US-WEST4) に似た形式で表示されます。

始める前に

  1. ログエントリを保存する Google Cloud プロジェクトを特定します。
  2. ログエントリを保存するログバケットの名前とロケーションを特定します。
  3. ログバケットに転送するログエントリを決定します。この例では、_Default シンクによって転送されたすべてのログを含めます。
  4. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

サポートされているリージョン

ログバケットを作成する際に、ログの保存先を選択できます。サポートされているリージョンの一覧については、ロケーションをご覧ください。

ログバケットを作成する

ログバケットにはログエントリが保存されます。プロジェクト、フォルダ、組織には、ログエントリをログバケットまたは他の宛先に転送するログシンクが含まれています。シンクの宛先がログバケットの場合、そのログバケットはログシンクと同じリソースに配置することも、別のリソースに配置することもできます。詳細については、ログバケットを構成するをご覧ください。

  1. シェルを開きます。

    たとえば、Cloud Shell を使用するには、次の操作を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. ツールバーで [Cloud Shell をアクティブにする] をクリックします。
  2. ログバケットを作成するには、シェルで gcloud logging buckets create コマンドを実行します。次のコマンドを実行する前に、次のように置き換えます。

    • BUCKET_ID: ログバケットの名前または ID。
    • LOCATION:ログバケットのロケーション。
    • PROJECT_ID: プロジェクトの ID。

    コマンドの例:

    gcloud logging buckets create BUCKET_ID \
      --location=LOCATION \
      --project=PROJECT_ID
    
  3. バケットが作成されたことを確認します。

    gcloud logging buckets list --project=PROJECT_ID
    

ログバケットを作成した後、説明やデータ保持期間など、一部のプロパティを変更できます。これらの変更を行うには、gcloud logging buckets update コマンドを使用します。

_Default ログシンクをリダイレクトする

シンクを作成して、ログをログバケットに転送します。シンクには、このシンクを介してエクスポートするログエントリを選択するフィルタとエクスポート先があります。このガイドでは、既存の _Default シンクを更新して、ログエントリを前の手順で作成したログバケットに転送します。

シンクを更新するには、gcloud logging sinks update コマンドを実行します。次のコマンドを実行する前に、次のように置き換えます。

  • _Default: この例では、_Default という名前のシンクの宛先を更新します。別のシンクを更新する場合は、この変数の名前を変更します。
  • BUCKET_ID: ログバケットの名前または ID。
  • LOCATION:ログバケットのロケーション。
  • PROJECT_ID: プロジェクトの ID。

コマンドの例:

gcloud logging sinks update _Default \
  logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID \
  --log-filter='NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT
    LOG_ID("externalaudit.googleapis.com/activity") AND NOT
    LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT
    LOG_ID("externalaudit.googleapis.com/system_event") AND NOT
    LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT
    LOG_ID("externalaudit.googleapis.com/access_transparency")' \
  --description="Updated the _Default sink to route logs to the LOCATION region"

シンクをテストするためのログエントリを作成する

シンクが正しく更新されたことを確認するには、次の手順に従います。

  1. gcloud logging write コマンドを使用して、テスト ログ メッセージをリージョン化されたバケットに送信します。次のコマンドを実行する前に、次のように置き換えます。

    • LOG_NAME: ログの名前。
    • BUCKET_ID: ログバケットの名前または ID。
    • PROJECT_ID: プロジェクトの ID。

    コマンドの例:

    gcloud logging write LOG_NAME "Test to route logs to BUCKET_ID" \
    --project=PROJECT_ID
    
  2. ログエントリを表示します。

    1. Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。

      [ログ エクスプローラ] に移動

      検索バーを使用してこのページを検索する場合は、小見出しが [Logging] の結果を選択します。

    2. ツールバーで [スコープを絞り込む] をクリックし、[現在のプロジェクト] を選択します。

      ログ エクスプローラは、プロジェクトで発生したログエントリを表示するように構成されています。

    3. [Log field] ペインで、[グローバル] リソースタイプを選択します。

    4. テストのログエントリが [クエリ結果] パネルに表示されます。

Google Cloud コンソールでログを検索する

ログバケットのログエントリを表示するには、Google Cloud コンソールに移動し、次の操作を行います。

  1. Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Logging] である結果を選択します。

  2. [範囲を絞り込む] を選択します。

  3. [範囲を絞り込む] パネルで、[ログビュー] を選択します。

  4. BUCKET_NAME に関連付けられている _AllLogs ビューを選択します。

  5. [適用] をクリックします。

    [ログ エクスプローラ] が更新され、バケットのログが表示されます。

    ログ エクスプローラの使用方法については、ログ エクスプローラを使用してログを表示するをご覧ください。

次のステップ