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

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

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

ログスコープについて

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

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

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

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

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

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

ベスト プラクティス

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

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

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

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

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

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

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

制限事項

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

始める前に

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

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

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

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

    必要な権限

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

    • デフォルトのログスコープを取得して設定するには: observability.scopes.{get, 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: プロジェクトの ID。

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

 gcloud logging scopes describe LOG_SCOPE --project=PROJECT_ID

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

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

Terraform

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

REST

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

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

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

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

デフォルトのログスコープには、[ログ エクスプローラ] ページが開かれたときにそのページで検索されるリソースが一覧表示されます。デフォルトのログスコープが存在しない場合や、アクセスできない場合は、選択したプロジェクト、フォルダ、または組織に由来するログエントリが自動的に検索されます。[ログ エクスプローラ] ページに表示されるログエントリは、検索対象のリソース、期間設定、検索対象リソースに対する IAM ロールによって異なります。

プロジェクトが作成されると、_Default という名前のログスコープが作成され、デフォルトのログスコープとして指定されます。ただし、独自のログスコープを作成して、デフォルトのログスコープとして指定することはできます。

Console

デフォルトのログスコープを設定するには、次のようにします。

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

    [設定] に移動

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

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

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

gcloud

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

Terraform

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

REST

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

ログスコープを作成する

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

Console

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

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

    [設定] に移動

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

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

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

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

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

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

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

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

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

  6. [ログスコープを作成] をクリックします。

gcloud

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

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

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

  • PROJECT_ID: プロジェクトの 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: プロジェクトの ID。
  • LOG_SCOPE: ログスコープの名前。例: my-scope

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

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

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

 gcloud logging scopes delete LOG_SCOPE --project=PROJECT_ID

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

  • PROJECT_ID: プロジェクトの 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 に設定します。

次のステップ