ログバケットを構成する

このドキュメントでは、 Trusted Cloud コンソール、Google Cloud CLILogging API を使用して Cloud Logging バケットを作成して管理する方法について説明します。また、Trusted Cloud プロジェクト レベルでログバケットを作成して管理する手順についても説明します。フォルダまたは組織のレベルではログバケットを作成できません。Cloud Logging は、フォルダと組織のレベルで _Default_Required のバケットを自動的に作成します。

バケットのコンセプトの概要については、転送と保存の概要: ログバケットをご覧ください。

このドキュメントでは、顧客管理の暗号鍵(CMEK)を使用するログバケットの作成方法については説明しません。このトピックの詳細については、ログストレージに CMEK を構成するをご覧ください。

始める前に

ログバケットを使用する前に、次のことを行う必要があります。

バケットを作成する

Trusted Cloud プロジェクトあたり最大 100 個のバケットを作成できます。

Trusted Cloud プロジェクトにユーザー定義のログバケットを作成するには、次の操作を行います。

Trusted Cloud コンソール

Trusted Cloud プロジェクトにログバケットを作成するには、次の操作を行います。

  1. Trusted Cloud コンソールで、[ログストレージ] ページに移動します。

    [ログストレージ] に移動

    このページを検索バーで検索する場合は、小見出しが「Logging」の結果を選択します。

  2. [ログバケットを作成] をクリックします。

  3. バケットの名前説明を入力します。

  4. 省略可: ログストレージのリージョンを選択するには、[ログバケットのリージョンを選択] メニューをクリックしてリージョンを選択します。リージョンを選択しない場合は、global リージョンが使用されます。つまり、ログはサポートされている任意のリージョンに物理的に配置されます。

  5. [バケットを作成] をクリックします。

    これらの処理が完了するまでにしばらく時間がかかることがあります。

gcloud

ログバケットを作成するには、gcloud logging buckets create コマンドを実行します。

gcloud logging buckets create BUCKET_ID --location=LOCATION

たとえば、global リージョンで BUCKET_ID my-bucket のバケットを作成する場合、コマンドは次のようになります。

gcloud logging buckets create my-bucket --location global --description "My first bucket"

REST

バケットを作成するには、projects.locations.buckets.create メソッドを使用します。次のように、メソッドの引数を準備します。

  1. バケットを作成するリソース(projects/PROJECT_ID/locations/LOCATION)を parent パラメータに設定します。

    変数 LOCATION には、ログを保存するリージョンを指定します。

    たとえば、リージョン global にプロジェクト my-project のバケットを作成する場合、parent パラメータは projects/my-project/locations/global のようになります。

  2. bucketId パラメータを設定します。例: my-bucket

  3. 同期メソッド projects.locations.buckets.create を呼び出してバケットを作成します。

バケットを作成したら、ログエントリをバケットに転送するシンクを作成し、ログビューを構成して、新しいバケットのログにアクセスできるユーザーとアクセス可能なログを制御します。

バケットを管理する

このセクションでは、Google Cloud CLI または Trusted Cloud コンソールでログバケットを管理する方法について説明します。

バケットを更新する

バケットのプロパティ(説明など)を更新するには、次の操作を行います。

Trusted Cloud コンソール

バケットのプロパティを更新するには、次の操作を行います。

  1. Trusted Cloud コンソールで、[ログストレージ] ページに移動します。

    [ログストレージ] に移動

    このページを検索バーで検索する場合は、小見出しが「Logging」の結果を選択します。

  2. 更新するバケットで、[その他] をクリックします。

  3. [バケットを編集] を選択します。

  4. 必要に応じてバケットを編集します。

  5. [バケットを更新] をクリックします。

gcloud

バケットのプロパティを更新するには、gcloud logging buckets update コマンドを実行します。

gcloud logging buckets update BUCKET_ID --location=LOCATION UPDATED_ATTRIBUTES

例:

gcloud logging buckets update my-bucket --location=global --description "Updated description"

REST

バケットのプロパティを更新するには、Logging API で projects.locations.buckets.patch を使用します。

バケットをロックする

更新されないようにバケットをロックすると、バケットの保持ポリシーもロックされます。保持ポリシーがロックされると、バケット内のすべてのログエントリがバケットの保持期間を満了するまでバケットを削除できません。ロックされたログバケットを含むプロジェクトが誤って削除されないようにするには、プロジェクトにリーエンを追加します。詳しくは、リーエンによるプロジェクトの保護をご覧ください。

他のユーザーがログバケットを更新または削除できないようにするには、バケットをロックします。バケットをロックする手順は次のとおりです。

Trusted Cloud コンソール

Trusted Cloud コンソールでは、ログバケットのロックはサポートされていません。

gcloud

バケットをロックするには、--locked フラグを指定して gcloud logging buckets update コマンドを実行します。

gcloud logging buckets update BUCKET_ID --location=LOCATION --locked

例:

gcloud logging buckets update my-bucket --location=global --locked

REST

バケットの属性をロックするには、Logging API で projects.locations.buckets.patch を使用します。locked パラメータを true に設定します。

バケットを一覧表示する

Trusted Cloud プロジェクトに関連付けられたログバケットを一覧表示し、保持設定などの詳細を確認するには、次のようにします。

Trusted Cloud コンソール

Trusted Cloud コンソールで、[ログストレージ] ページに移動します。

[ログストレージ] に移動

このページを検索バーで検索する場合は、小見出しが「Logging」の結果を選択します。

ログバケット」という名前の表に、現在のTrusted Cloud プロジェクトに関連付けられたバケットが一覧表示されます。

この表には、各ログバケットの次の属性が一覧表示されます。

  • 名前: ログバケットの名前。
  • 説明: バケットの説明。
  • 保持期間: Cloud Logging がバケットのデータを保存する日数。
  • リージョン: バケットのデータが保存される地理的位置。
  • ステータス: バケットがロックされているか、ロック解除されているか。

Cloud Logging がバケットを削除保留にしている場合、表のエントリに警告記号 が付いています。

gcloud

gcloud logging buckets list コマンドを実行します。

gcloud logging buckets list

ログバケットの次の属性が表示されます。

  • LOCATION: バケットのデータが保存されるリージョン
  • BUCKET_ID: ログバケットの名前。
  • RETENTION_DAYS: Cloud Logging がバケットのデータを保存する日数。
  • LIFECYCLE_STATE: Cloud Logging がバケットを削除保留中としているかどうかを示します。
  • LOCKED: バケットがロックされているか、ロック解除されているか。
  • CREATE_TIME: バケットが作成された日時を示すタイムスタンプ。
  • UPDATE_TIME: バケットが最後に変更された日時を示すタイムスタンプ。

1 つのバケットの属性だけを表示することもできます。たとえば、global リージョンの _Default ログバケットの詳細を表示するには、gcloud logging buckets describe コマンドを実行します。

gcloud logging buckets describe _Default --location=global

REST

Trusted Cloud プロジェクトに関連付けられたログバケットの一覧を取得するには、Logging API で projects.locations.buckets.list を使用します。

バケットの詳細を表示する

単一ログバケットの詳細を表示するには、次の操作を行います。

Trusted Cloud コンソール

Trusted Cloud コンソールで、[ログストレージ] ページに移動します。

[ログストレージ] に移動

このページを検索バーで検索する場合は、小見出しが「Logging」の結果を選択します。

ログバケットで その他)をクリックして、[バケットの詳細を表示] を選択します。

このダイアログには、ログバケットの次の属性が表示されます。

  • 名前: ログバケットの名前。
  • 説明: ログバケットの説明。
  • 保持期間: Cloud Logging がバケットのデータを保存する日数。
  • リージョン: バケットのデータが保存される地理的位置。

gcloud

gcloud logging buckets describe コマンドを実行します。

たとえば、次のコマンドは _Default バケットの詳細を報告します。

gcloud logging buckets describe _Default --location=global

ログバケットの次の属性が表示されます。

  • createTime: バケットが作成された日時を示すタイムスタンプ。
  • description: ログバケットの説明。
  • lifecycleState: Cloud Logging がバケットを削除保留中としているかどうかを示します。
  • name: ログバケットの名前。
  • retentionDays: Cloud Logging がバケットのデータを保存する日数。
  • updateTime: バケットが最後に変更された日時を示すタイムスタンプ。

REST

単一ログバケットの詳細を表示するには、Logging API で projects.locations.buckets.get を使用します。

バケットを削除する

次のいずれかの条件を満たすログバケットを削除できます。

  • ログバケットがロック解除されている。
  • ログバケットがロックされており、ログバケット内のすべてのログエントリがバケットの保持期間を満たしている。

更新されないようにロックされたログバケットに、バケットの保持期間を満たしていないログエントリが保存されている場合、そのログバケットを削除することはできません。

削除コマンドを実行すると、ログバケットは DELETE_REQUESTED 状態に移行し、7 日間その状態を維持します。この間、Logging は引き続きログをログバケットに転送します。ログエントリをバケットに転送するログシンクを削除または変更すると、ログバケットへのログの転送を停止できます。

DELETE_REQUESTED 状態のログバケットと同じ名前を使用して、新しいログバケットを作成することはできません。

ログバケットを削除するには、次の操作を行います。

Trusted Cloud コンソール

ログバケットを削除するには、次の操作を行います。

  1. Trusted Cloud コンソールで、[ログストレージ] ページに移動します。

    [ログストレージ] に移動

    このページを検索バーで検索する場合は、小見出しが「Logging」の結果を選択します。

  2. 削除するバケットを見つけて、その他)アイコンをクリックします。

  3. [バケットを削除] を選択します。

  4. 確認パネルで [削除] をクリックします。

  5. [ログストレージ] ページに、バケットが削除保留中であることを示すインジケータが表示されます。すべてのログを含むバケットは 7 日後に削除されます。

gcloud

ログバケットを削除するには、gcloud logging buckets delete コマンドを実行します。

gcloud logging buckets delete BUCKET_ID --location=LOCATION

ログバケットにリンクされた BigQuery データセットがある場合は、そのバケットを削除できません。

REST

バケットを削除するには、Logging API で projects.locations.buckets.delete を使用します。

削除したバケットを復元する

削除保留状態のバケットは、削除を取り消して復元できます。ログバケットの復元方法は次のとおりです。

Trusted Cloud コンソール

削除保留中のログバケットを復元するには、次の操作を行います。

  1. Trusted Cloud コンソールで、[ログストレージ] ページに移動します。

    [ログストレージ] に移動

    このページを検索バーで検索する場合は、小見出しが「Logging」の結果を選択します。

  2. 復元するバケットで、その他)をクリックし、[削除したバケットを復元する] を選択します。

  3. 確認パネルで [復元] をクリックします。

  4. [ログストレージ] ページで、削除保留中であることを示すインジケータがバケットから削除されます。

gcloud

削除保留中のログバケットを復元するには、gcloud logging buckets undelete コマンドを実行します。

gcloud logging buckets undelete BUCKET_ID --location=LOCATION

REST

削除保留中のバケットを復元するには、Logging API で projects.locations.buckets.undelete を使用します。

バケットに書き込む

ログバケットに直接ログを書き込むことはありません。代わりに、ログをTrusted Cloud リソース( Trusted Cloud プロジェクト、フォルダ、または組織)に書き込みます。親リソースのシンクは、ログバケットを含む宛先にログを転送します。ログがシンクのフィルタと一致し、シンクにログをログバケットに転送する権限がある場合、シンクはログをログバケットの宛先に転送します。

バケットから読み取る

各ログバケットには、一連のログビューがあります。ログバケットからログを読み取るには、ログバケットのログビューへのアクセス権が必要です。ログビューを使用すると、ログバケットに保存されているログのサブセットに対してのみユーザーにアクセス権を付与できます。ログビューの構成方法と、特定のログビューへのアクセス権を付与する方法については、ログバケットのログビューを構成するをご覧ください。

ログバケットからログを読み取るには、次の操作を行います。

Trusted Cloud コンソール

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

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

    このページを検索バーで検索する場合は、小見出しが「Logging」の結果を選択します。

  2. ログ エクスプローラに表示されるログをカスタマイズするには、[範囲を絞り込む] をクリックしてオプションを選択します。たとえば、プロジェクトまたはログビューで保存されているログを表示できます。

  3. [適用] をクリックします。[クエリ結果] ペインが更新され、選択したオプションに一致するログが再読み込みされます。

詳細については、ログ エクスプローラの概要: 範囲を絞り込むをご覧ください。

gcloud

ログバケットからログを読み取るには、gcloud logging read コマンドを使用し、LOG_FILTER を追加してデータを選択します。

gcloud logging read LOG_FILTER --bucket=BUCKET_ID --location=LOCATION --view=LOG_VIEW_ID

REST

ログバケットからログを読み取るには、entries.list メソッドを使用します。resourceNames を設定して適切なバケットとログビューを指定し、filter を設定してデータを選択します。

フィルタリング構文の詳細については、Logging のクエリ言語をご覧ください。

一般的な問題のトラブルシューティング

ログバケットの使用中に問題が発生した場合は、次のトラブルシューティング手順と一般的な質問に対する回答をご覧ください。

このバケットを削除できません。なぜですか?

バケットを削除するには、次の操作を行います。

  • バケットの削除に適切な権限があることを確認します。必要な権限のリストについては、IAM によるアクセス制御をご覧ください。

  • バケットの属性を一覧表示して、バケットがロックされているかどうかを確認します。バケットがロックされている場合は、バケットの保持期間を確認します。ロックされたバケットを削除するには、そのバケット内のすべてのログがバケットの保持期間を満たしている必要があります。

どのサービス アカウントがバケットにログを転送するのですか?

ログをバケットに転送する IAM 権限がサービス アカウントにあるかどうかを確認するには、次の操作を行います。

  1. Trusted Cloud コンソールで [IAM] ページに移動します。

    [IAM] に移動

    このページを検索バーで検索する場合は、小見出しが「IAM と管理」の結果を選択します。

  2. [権限] タブで、ロール別に表示します。Trusted Cloud プロジェクトに関連付けられたすべての IAM ロールとプリンシパルを含む表が表示されます。

  3. 表の [フィルタ] テキスト ボックス に「ログバケット書き込み」と入力します。

    ログバケット書き込みのロールを持つプリンシパルが表示されます。プリンシパルがサービス アカウントの場合、その ID には文字列 s3ns-system.iam.gserviceaccount.com が含まれます。

  4. 省略可: Trusted Cloud プロジェクトにログを転送できないようにサービス アカウントを削除する場合は、サービス アカウントのチェックボックス をオンにして、[削除] をクリックします。

ログが _Default シンクから除外されていても Trusted Cloud プロジェクトのログが表示されるのはなぜですか?

組織全体のログを集約する一元化された Trusted Cloud プロジェクトのログバケットでログを表示している可能性があります。

ログ エクスプローラを使用してこれらのログにアクセスしていて、_Default シンクから除外したログが表示される場合は、ビューがTrusted Cloud プロジェクト レベルに設定されている可能性があります。

この問題を解決するには、[範囲を絞り込む] メニューで [ログビュー] を選択し、Trusted Cloud プロジェクトの _Default バケットに関連付けられているログビューを選択します。これで、除外されたログが表示されなくなります。

次のステップ

Logs Bucket API メソッドの詳細については、LogBucket リファレンス ドキュメントをご覧ください。

組織またはフォルダを管理している場合は、子リソースの _Default ログバケットと _Required ログバケットのロケーションを指定できます。ログバケットで CMEK を使用するかどうかと、_Default ログシンクの動作を構成することもできます。詳しくは、組織とフォルダのデフォルト設定を構成するをご覧ください。

ログバケットを使用して一般的なユースケースに対応する方法については、次のトピックをご覧ください。