ログスコープを作成、管理する

このドキュメントでは、ログスコープを作成して管理する方法について説明します。ログスコープを使用すると、表示または分析するログエントリを効率的に見つけることができます。プロジェクト、フォルダ、組織で発生したログエントリのみを表示して分析する場合は、このドキュメントは対象外です。ただし、ログシンクを使用してログを他のプロジェクトまたはユーザー定義のログバケットに転送する場合や、ログビューを使用する場合は、このドキュメントの情報が特定のログエントリを効率的に見つけるのに役立ちます。

このドキュメントでは、ログを表示する方法については説明しません。このトピックの詳細については、ログ エクスプローラを使用してログを表示するをご覧ください。

ログスコープについて

ログスコープは、一連のリソースを一覧表示する永続的なプロジェクト レベルのリソースです。これらのリソースには、プロジェクト、フォルダ、組織、ログビューを含めることができます。たとえば、本番環境で使用されるリソースを含むプロジェクトを一覧表示するログスコープを定義できます。また、特定のリソースタイプのログエントリを含むログビューを一覧表示するログスコープを定義することもできます。

Google Cloud プロジェクト、フォルダ、または組織リソースを作成すると、Logging によって _Default という名前のログスコープが作成されます。このスコープには、作成されたプロジェクト、フォルダ、または組織が含まれます。 検索対象のリソースが Google Cloud プロジェクト、フォルダ、または組織の場合、結果には、リソースで発生し、ログバケットに保存されるログエントリが含まれます。プロジェクトを検索すると、別のプロジェクトのシンクによってプロジェクトに転送され、その後ログバケットに保存されるログエントリも結果に含まれます。

ログスコープを作成できます。作成したログスコープを編集、削除することもできます。ただし、_Default という名前のログスコープは編集または削除できません。

ログスコープを使用すると、[ログ エクスプローラ] ページでログデータの検索対象となるリソースを制御できます。このページを開いてログスコープを選択すると、そのスコープにリストされているリソースが検索され、表示が更新されます。

ログスコープを使用して、ログパネルでログデータの検索対象となるリソースを制御することもできます。ログパネルは、ログデータを表示するカスタム ダッシュボード ウィジェットです。各ログパネルには独自の構成があります。これにより、複数のログパネルを含むダッシュボードを作成できます。各パネルには異なるログデータが表示されます。詳細については、カスタム ダッシュボードにログとエラーを表示するをご覧ください。

プロジェクトの場合、デフォルトのログスコープにより、[ログ エクスプローラ] ページが開かれたときに検索されるリソースのセットが決まります。ただし、ストレージからフェッチされるログエントリは、検索対象リソースの Identity and Access Management(IAM)ロールと期間設定によって決まります。 プロジェクトが作成されると、_Default という名前のログスコープがデフォルトのログスコープとして指定されます。どのログスコープをデフォルトにするか設定できます。

ログスコープと一元化されたログ ストレージの違い

一元化されたログ ストレージとログスコープの両方を使用すると、異なるプロジェクトで生成されたログデータを表示できます。

一元化されたログバケットを構成すると、ログエントリが Google Cloudによって受信されると、単一のストレージ ロケーションに転送されます。一元化されたストレージでは、ログデータを 1 か所でクエリできるため、傾向の検索や問題の調査時にクエリを簡素化できます。セキュリティの観点から、ストレージ ロケーションも 1 つになるため、セキュリティ アナリストのタスクを簡素化できます。

ログスコープにリストされているリソースに対してクエリが実行されると、個々のクエリ結果が結合されます。ログスコープを使用すると、異なるロケーションに保存されているログデータを読み取り時に集約できます。ただし、ログスコープを使用して、一元化されたログバケットの 1 つ以上のログビューへの読み取りアクセス権を付与することもできます。

[ログ エクスプローラ] ページが開くと、デフォルトのログスコープにリストされているリソースに対してクエリが実行されます。そのため、通常表示するデータがページに表示されるように、デフォルトのスコープを構成します。たとえば、デフォルトのログスコープをログビューをリストするように設定すると、クエリを実行すると App Hub アプリケーションのログデータが返されます。

ベスト プラクティス

ログスコープを使用すると、構成を定義して保存し、今後使用できるようにできます。複雑な検索構成にはログスコープを作成することをおすすめします。

たとえば、問題のトラブルシューティングをしており、チームが所有するすべての仮想マシン(VM)インスタンスのログエントリを表示したいとします。このタスクを完了するには、次の操作を行います。

  1. 表示するログエントリが複数のログバケットと複数のプロジェクトに保存されていることがわかりました。ほとんどのログバケットには、分析するログエントリを含むログビューが存在します。ログビューが存在しない場合は、作成できます。

  2. 今後同様のトラブルシューティング タスクが発生する可能性があるため、ログスコープを作成することにしました。

  3. Google Cloud コンソールで [ログ エクスプローラ] ページを開き、[範囲を絞り込む] メニューを使用して新しいログスコープを選択します。

  4. ログエントリを確認し、調査していた問題の解決に必要な情報を探します。

  5. 問題を解決したら、障害の原因を同僚と共有します。また、今後も同様の障害が発生すると予想されるため、自分自身や障害を調査する担当者が関連するログエントリをすばやく見つけられるように、ログスコープを作成しました。

App Hub アプリケーションとログスコープ

App Hub アプリケーションは、ログデータを複数のプロジェクトに書き込む場合があります。ログデータは、その元のプロジェクトに保存されている可能性があります。また、組織管理者が一元化されたストレージを構成している可能性もあります。アプリケーションのログデータを表示するには、App Hub ホスト プロジェクトにログスコープを作成し、アプリケーションのログデータを保存するプロジェクトまたはログビューを一覧表示するように構成します。カスタム ログスコープをデフォルトのログスコープとして設定することをおすすめします。これらの手順を完了すると、アプリケーションによって書き込まれたデータが、異なるプロジェクトまたは一元化されたログバケットに保存されている場合でも、[ログ エクスプローラ] ページに自動的に表示されます。

制限事項

  • _Default という名前のログスコープを削除または変更することはできません。
  • デフォルトのログスコープをサポートするのは Google Cloud プロジェクトのみです。
  • ユーザー定義のログスコープにフォルダや組織を追加することはできません。
  • ログスコープは global ロケーションに作成されます。

始める前に

  • ログスコープの作成と表示、デフォルトのログスコープの設定に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

    • ログスコープを作成して表示し、デフォルトのログスコープを取得する: プロジェクト、フォルダ、組織に対するログ構成書き込み roles/logging.configWriter
    • デフォルトのログスコープを設定または取得するには: プロジェクト、フォルダ、または組織に対するオブザーバビリティ エディタ roles/observability.editor

    ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

    これらの事前定義ロールには、ログスコープの作成と表示、デフォルトのログスコープの設定に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

    必要な権限

    ログスコープの作成と表示、デフォルトのログスコープの設定には、次の権限が必要です。

    • デフォルトのログスコープを設定するには: observability.scopes.{get, update}
    • ログスコープを作成、管理するには: logging.logScopes.{create, delete, get, list, update}

    カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

  • Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    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.

    Terraform

    ローカル開発環境でこのページの Terraform サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。

    1. Install the Google Cloud CLI.
    2. To initialize the gcloud CLI, run the following command:

      gcloud init
    3. If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

    詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

ログスコープを一覧表示

Console

ログスコープを一覧表示するには、次の操作を行います。

  1. Google Cloud コンソールで、[設定] ページに移動します。

    [設定] に移動

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

  2. [ログスコープ] タブを選択します。

    表にログスコープが一覧表示されます。 Google Cloud プロジェクトを選択すると、表内の 1 つのエントリに「デフォルト」アイコン が表示されます。これは、そのページが開いたときにログ エクスプローラによって検索されるリソースが、このログスコープに一覧表示されることを示します。

gcloud

プロジェクト内のログスコープを一覧表示するには、gcloud logging scopes list コマンドを使用します。

 gcloud logging scopes list --project=PROJECT_ID

コマンドを実行する前に、次の変数を更新します。

  • PROJECT_ID: プロジェクトの識別子。

プロジェクトのログスコープの詳細を取得するには、gcloud logging scopes describe コマンドを使用します。

 gcloud logging scopes describe LOG_SCOPE --project=PROJECT_ID

コマンドを実行する前に、次の変数を更新します。

  • PROJECT_ID: プロジェクトの識別子。
  • LOG_SCOPE: ログスコープの名前。例: my-scope

Terraform

Terraform を使用してログスコープを作成および変更できます。ただし、Terraform を使用してログスコープを一覧表示することはできません。

REST

Cloud Logging API には、リソース内のログスコープを一覧表示するコマンドや、特定のログスコープの詳細を報告するコマンドがあります。コマンドの一覧については、API リファレンス ドキュメントをご覧ください。

Google Cloud プロジェクトの場合は、次のコマンドを使用します。

API コマンドで、locations フィールドを global に設定します。

デフォルトのログスコープを設定する

このセクションはフォルダや組織には適用されません。フォルダと組織の場合、[ログ エクスプローラ] ページが開くと、フォルダまたは組織で発生したログエントリが検索されます。

プロジェクトが作成されると、_Default という名前のログスコープが作成されます。このスコープには、プロジェクトという 1 つのリソースが一覧表示されます。このリソースは、デフォルトのログスコープとして指定されます。プロジェクトを作成してデフォルトのログスコープを変更しない場合、[ログ エクスプローラ] ページが開くと、プロジェクトに由来するすべてのログエントリが検索されます。

独自のログスコープを作成して、デフォルトのログスコープとして指定できます。この機能を使用すると、[ログ エクスプローラ] ページでログエントリを検索するリソースを構成できます。

Console

プロジェクトのデフォルトのログスコープを設定するには、次の操作を行います。

  1. Enable the Observability API.

    Enable the API

    Observability API を有効にする前に、正しいプロジェクトが選択されていることを確認します。App Hub 構成の場合は、App Hub ホスト プロジェクトを選択します。

  2. Google Cloud コンソールで、[設定] ページに移動します。

    [設定] に移動

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

    [設定] ページには、いくつかのタブがあります。各タブには、特定のテレメトリー タイプのスコープ構成が表示されます。

  3. [ログスコープ] タブを選択します。

  4. デフォルトのログスコープとして指定するログスコープを見つけて、 [その他] をクリックし、[デフォルトとして設定] を選択します。

    選択したログスコープには、デフォルト アイコン が表示されます。

gcloud

サポートされていません。

Terraform

Terraform を使用してログスコープを作成および変更できます。ただし、Terraform を使用してデフォルトのログスコープを設定することはできません。

REST

Observability API を使用してデフォルトのログスコープを取得または設定する手順は次のとおりです。

  1. Observability API が有効になっていることを確認します。

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Google Cloud CLI のデフォルト プロジェクトを設定します。

      gcloud config set project PROJECT_ID
      

      前述のコマンドを実行する前に、次のように置き換えます。

      • PROJECT_ID: プロジェクトの ID。App Hub 構成の場合は、App Hub ホスト プロジェクトを選択します。
    3. Enable the Observability API:

      gcloud services enable observability.googleapis.com
  2. 次のいずれかを行います。

    • プロジェクトのデフォルトのログスコープを取得するには、projects.locations.scopes.get エンドポイントにリクエストを送信します。パス パラメータを指定する必要があります。レスポンスは、デフォルトのログスコープを一覧表示する Scope オブジェクトです。

    • プロジェクトのデフォルトのログスコープを更新するには、projects.locations.scopes.patch エンドポイントにリクエストを送信します。パスパラメータとクエリ パラメータを指定し、Scope オブジェクトを指定する必要があります。クエリ パラメータは、変更されるフィールドを特定します。レスポンスは Scope オブジェクトです。

      どちらのエンドポイントのパス パラメータも次の形式になります。

      projects/PROJECT_ID/locations/LOCATION/scopes/OBSERVABILITY_SCOPE_ID
      

      上の式のフィールドの意味は次のとおりです。

      • PROJECT_ID: プロジェクトの ID。App Hub 構成の場合は、App Hub ホスト プロジェクトを選択します。
      • LOCATION: location フィールドは global に設定する必要があります。
      • OBSERVABILITY_SCOPE_ID: Scope オブジェクトの名前。このフィールドは _Default に設定する必要があります。_Default という名前の Scope オブジェクトには、デフォルトのログスコープに関する情報が格納され、自動的に作成されます。

ログスコープを作成する

プロジェクトごとに作成できるログスコープは 100 個です。 ログスコープには、ログビューとプロジェクトを合計 100 個含めることができますが、プロジェクトは 5 つだけ含めることができます。ログスコープにフォルダや組織を追加することはできません。

Console

ログスコープを作成するには、次の操作を行います。

  1. Google Cloud コンソールで、[設定] ページに移動します。

    [設定] に移動

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

  2. [ログスコープ] タブを選択してから、[ログスコープを作成] をクリックします。
  3. 1 つ以上のプロジェクトを追加するには、[プロジェクトを追加] をクリックしてダイアログを完了します。

    プロジェクトを追加すると、そのプロジェクトに対する IAM ロールによって、表示できるログエントリが決まります。たとえば、IAM ロールによって、ログバケットの特定のログビューからアクセス可能なログエントリのみを表示できる場合があります。ロールの詳細については、Logging のロールをご覧ください。

  4. 1 つ以上のログビューを追加するには、[ログビューを追加] をクリックしてダイアログを完了します。

    ダイアログには、現在のプロジェクトに由来するログエントリ、または別のプロジェクトのシンクによって現在のプロジェクトに転送されたログエントリを含むすべてのログビューが一覧表示されます。たとえば、シンクを構成していない場合、このダイアログには現在のプロジェクトのログビューが一覧表示されます。

    別の Google Cloud プロジェクトに保存されているログビューを一覧表示するには、 [プロジェクトをインポート] をクリックしてから、Google Cloud プロジェクトを選択します。

    ログビューを追加すると、ログビューまたはログビューを保存するプロジェクトに対する IAM ロールによって、アクセスできるログエントリが決まります。詳細については、ログビューへのアクセスを制御するをご覧ください。

  5. [ログスコープに名前を付ける] セクションで、[ログスコープ] タブに表示する名前と説明を入力します。

    ログスコープの名前は変更できません。また、プロジェクト内で一意にする必要があります。

  6. [Create log scope] をクリックします。

gcloud

プロジェクトにログスコープを作成するには、gcloud logging scopes create コマンドを使用します。

 gcloud logging scopes create LOG_SCOPE --project=PROJECT_ID \
   --description=DESCRIPTION \
   --resource-names=RESOURCE_NAMES

コマンドを実行する前に、次の変数を更新します。

  • PROJECT_ID: プロジェクトの識別子。
  • LOG_SCOPE: ログスコープの名前。例: my-scope

  • DESCRIPTION: 省略可。ログスコープの説明。説明を文字列としてフォーマットします。

  • RESOURCE_NAMES: プロジェクトまたはログビューの完全修飾名のカンマ区切りリスト。たとえば、ログスコープに my-project を含めるには、projects/my-project を指定します。

Terraform

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。 詳細については、Terraform プロバイダのリファレンス ドキュメントをご覧ください。

Terraform を使用してプロジェクト、フォルダ、組織にログスコープを作成するには、Terraform リソース google_logging_log_scope を使用します。

コマンドで、次のフィールドを設定します。

  • parent: プロジェクト、フォルダ、または組織の完全修飾名。たとえば、このフィールドを "projects/PROJECT_ID" に設定します。ここで、PROJECT_ID は Google Cloud プロジェクトの ID です。
  • locations: "global" に設定します。
  • name: ログスコープの完全修飾名に設定します。プロジェクトの場合、このフィールドの形式は次のとおりです。

    "projects/PROJECT_ID/locations/global/logScopes/LOG_SCOPE"
    

    上記の式で、LOG_SCOPE はログスコープの名前(「production」など)です。

  • resource_names: プロジェクトとログビューの配列。各プロジェクトとログビューは完全修飾名を使用して指定します。

  • description: 簡単な説明。たとえば、「本番環境リソースのスコープ」などです。

REST

Cloud Logging API は、フォルダまたは組織でログスコープの作成もサポートしています。詳細については、API リファレンス ドキュメントをご覧ください。

Google Cloud プロジェクトの場合は、次のコマンドを使用します。

API コマンドで、locations フィールドを global に設定します。

ログスコープを変更または削除する

Console

自分または同僚が作成したログスコープを変更または削除する手順は次のとおりです。

  1. Google Cloud コンソールで、[設定] ページに移動します。

    [設定] に移動

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

  2. [ログスコープ] タブを選択します。
  3. 変更または削除するログスコープを見つけて、 [その他] をクリックしてから、次のいずれかを行います。

    • 変更するには、[スコープを編集] を選択して、ダイアログを完了します。
    • 削除するには、[スコープを削除] を選択して、ダイアログを完了します。

gcloud

プロジェクトのログスコープ内のリソースのリストの説明を変更するには、gcloud logging scopes update コマンドを使用します。

 gcloud logging scopes update LOG_SCOPE --project=PROJECT_ID \
   --description=DESCRIPTION \
   --resource-names=RESOURCE_NAMES

コマンドを実行する前に、次の変数を更新します。

  • PROJECT_ID: プロジェクトの識別子。
  • LOG_SCOPE: ログスコープの名前。例: my-scope

  • DESCRIPTION: ログスコープの説明。説明を文字列としてフォーマットします。ログスコープの説明を変更しない場合は、このフィールドを省略します。

  • RESOURCE_NAMES: プロジェクトまたはログビューの完全修飾名のカンマ区切りリスト。リソースのリストを変更しない場合は、このフィールドを省略します。

プロジェクト内のログスコープを削除するには、gcloud logging scopes delete コマンドを使用します。

 gcloud logging scopes delete LOG_SCOPE --project=PROJECT_ID

コマンドを実行する前に、次の変数を更新します。

  • PROJECT_ID: プロジェクトの識別子。
  • LOG_SCOPE: ログスコープの名前。例: my-scope

Terraform

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。 詳細については、Terraform プロバイダのリファレンス ドキュメントをご覧ください。

Terraform を使用してプロジェクト、フォルダ、組織のログのスコープを変更するには、Terraform リソース google_logging_log_scope を使用します。

REST

Cloud Logging API には、ログスコープを変更または削除できるコマンドがあります。コマンドの一覧については、API リファレンス ドキュメントをご覧ください。

Google Cloud プロジェクトの場合は、次のコマンドを使用します。

API コマンドで、locations フィールドを global に設定します。

次のステップ