ログバケットを構成する

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

ログバケットをアップグレードすると、Log Analytics を使用できます。Log Analytics を使用すると、ログデータに対して SQL クエリを実行して、アプリケーション、セキュリティ、ネットワーク問題のトラブルシューティングを行うことができます。

BigQuery を使用してログデータを分析するには、次の 2 つの方法があります。

  • Log Analytics を使用するようにログバケットをアップグレードし、リンクされた BigQuery データセットを作成します。このシナリオでは、ログデータの保存は Logging が行いますが、ログデータの読み取りは BigQuery で行うことができます。

  • ログエントリを BigQuery にエクスポートします。このシナリオでは、シンクの作成はユーザーが行う必要がありますが、データの保存と管理は BigQuery が行います。パーティション分割テーブルを使用することもできます。

ログデータが BigQuery で利用可能になると、ログデータを BigQuery に保存されている他のデータと結合し、Looker Studio や Looker などの他のツールからアクセスできるようになります。

バケットのコンセプトの概要については、ルーティングとストレージの概要: ログバケットをご覧ください。

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

始める前に

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

バケットの作成

Google Cloud プロジェクトごとに最大 100 個のバケットを作成できます。

Google Cloud プロジェクトのユーザー定義のログバケットを作成する手順は次のとおりです。

Google Cloud コンソール

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

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

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

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

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

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

  4. 省略可: バケットをアップグレードすると、Log Analytics を使用できます。

    1. [アップグレードして Log Analytics を使用する] を選択します。

      Log Analytics を使用するようにバケットをアップグレードすると、SQL クエリを使用して [Log Analytics] ページでログをクエリできます。ログ エクスプローラを使用してログを引き続き表示することもできます。

    2. 省略可: BigQuery でログを表示するには、[このバケットにリンクする新しい BigQuery データセットを作成する] を選択して、一意のデータセット名を入力します。

      このオプションを選択すると、BigQuery はログバケットに保存されているデータを読み取ることができます。BigQuery インターフェースでクエリして、ログデータを結合したり、Looker Studio や Looker などの他のツールからデータにアクセスしたりできるようになりました。

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

  6. 省略可: バケット内のログにカスタム保持期間を設定するには、[] をクリックします。

    [保持期間] フィールドに、Cloud Logging でログを保持する日数を入力します(1~3,650 日)。保持期間をカスタマイズしない場合、デフォルトの 30 days になります。

    バケットを作成した後にバケットを更新して、カスタム保持を適用するともできます。

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

    これらのオプションが選択されている場合は、ログバケットの作成後に、Logging によってバケットがアップグレードされ、データセット リンクが作成されます。

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

gcloud

ログバケットのみを作成するには、gcloud logging buckets create コマンドを実行します。ログ分析を使用するようにログバケットをアップグレードする場合は、--enable-analytics フラグと --async フラグを指定し、変数 LOCATIONサポートされているリージョンに設定されていることを確認します。

gcloud logging buckets create BUCKET_ID --location=LOCATION --enable-analytics --async OPTIONAL_FLAGS

--async フラグを使用して、コマンドを非同期にします。非同期メソッドの出力は Operation オブジェクトで、メソッドの進行状況に関する情報が格納されています。メソッドが完了すると、Operation オブジェクトにステータスが含まれます。詳細については、非同期 API メソッドをご覧ください。

ログ分析を使用するようにログバケットをアップグレードしない場合は、--enable-analytics フラグと --async フラグを省略します。

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

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

たとえば、global のロケーションに BUCKET_ID my-upgraded-bucket のバケットを作成し、Log Analytics を使用するようにログバケットをアップグレードする場合、コマンドは次のようになります。

gcloud logging buckets create my-upgraded-bucket --location global \
      --description "My first upgraded bucket" \
      --enable-analytics --retention-days=45

REST

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

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

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

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

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

  3. 次のいずれかを行います。

    • ログバケットを作成して、ログ分析を使用するようにログバケットをアップグレードするには:

      1. LogBucket.analyticsEnabled ブール値を true に設定します。

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

        非同期メソッドに対するレスポンスは、Operation オブジェクトです。このオブジェクトには、メソッドの進行状況に関する情報が格納されています。メソッドが完了すると、Operation オブジェクトにステータスが含まれます。詳細については、非同期 API メソッドをご覧ください。

        createAsync メソッドが完了するまでに数分かかります。このメソッドでは、analyticsEnabled ブール値が true に設定されていても、エラー メッセージが生成されず、エラーも発生しません。

    • それ以外の場合は、同期メソッド projects.locations.buckets.create を呼び出してバケットを作成します。

バケットを作成したら、ログエントリをバケットにルーティングするシンクを作成し、新しいバケットのログにアクセスできるユーザーとアクセス可能なログを決定するログビューを構成します。 バケットを更新して、カスタム保持制限付きフィールドを構成することもできます。

ログバケットに保存されているログの量を追跡する

Google Cloud コンソールの [ログストレージ] ページでは、ログバケットに保存されているログデータの量が追跡されます。

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

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

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

[ログストレージ] ページに、Google Cloud プロジェクトの統計情報の概要が表示されます。

統計情報の概要では、選択されているプロジェクトのログバケットに保存されているログデータの量が報告されます。

次の統計情報が報告されます。

  • 今月の取り込み: 今月の初日から Google Cloud プロジェクトでログバケットに保存されたログデータの量。

  • 先月の取り込み: 先月に Google Cloud プロジェクトでログバケットに保存されたログデータの量。

  • 月末までの取り込みの想定: 今月の初日から月末までに Google Cloud プロジェクトでログバケットに保存されるログデータの推定量(現在の使用量に基づく)。

  • 今月の課金対象ストレージ: 30 日以上保持された課金対象のログデータの量。

上記の統計情報には、_Required バケット内のログは含まれません。そのバケットのログを除外したり、無効にしたりすることはできません。

Google Cloud コンソールの [ログルーター] ページには、毎月の割り当てを超えるログバケットへのログの保存やストレージの料金を最小限に抑えるために使用できるツールが用意されています。以下の操作を行います。

  • バケットレベルでのログの保存を無効にする
  • 特定のログエントリをログバケットへの保存から除外します。

詳細については、シンクを管理するをご覧ください。

バケットの管理

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

バケットを更新する

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

Google Cloud コンソール

バケットのプロパティを更新する手順は次のとおりです。

  1. Google 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 を使用します。

Log Analytics を使用するためにログバケットをアップグレードする

Log Analytics を使用するように既存のログバケットをアップグレードするためには、次の制限が適用されます。

  • ログバケットは Google Cloud プロジェクト レベルで作成されました。
  • ログバケットは、_Required バケットでない限りロック解除されます。
  • バケットの更新が保留中でないこと。

Google Cloud コンソール

Log Analytics を使用するように既存のバケットをアップグレードするには、次の操作を行います。

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

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

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

  2. アップグレードするバケットを見つけます。

  3. [Log Analytics を使用可能] 列に [アップグレード] と表示されたら、ログバケットをアップグレードして Log Analytics を使用できます。[アップグレード] をクリックします。

    ダイアログが開きます。[確認] をクリックします。

gcloud

Log Analytics を使用するようにログバケットをアップグレードするには、gcloud logging buckets update コマンドを実行します。--enable-analytics フラグを設定する必要があります。そして、--async フラグを含めることもおすすめします。

gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --async

--async フラグを使用して、コマンドを非同期にします。非同期メソッドの出力は Operation オブジェクトで、メソッドの進行状況に関する情報が格納されています。メソッドが完了すると、Operation オブジェクトにステータスが含まれます。詳細については、非同期 API メソッドをご覧ください。

REST

ログ分析を使用するようにログバケットをアップグレードするには、Cloud Logging API の projects.locations.buckets.updateAsync メソッドを使用します。

次のように、メソッドの引数を準備します。

  1. LogBucket.analyticsEnabled ブール値を true に設定します。
  2. コマンドのクエリ パラメータには updateMask=analyticsEnabled を使用します。

非同期メソッドに対するレスポンスは、Operation オブジェクトです。このオブジェクトには、メソッドの進行状況に関する情報が格納されています。メソッドが完了すると、Operation オブジェクトにステータスが含まれます。詳細については、非同期 API メソッドをご覧ください。

updateAsync の完了には数分かかることがあります。

BigQuery の機能を使用してログデータを分析する場合は、Log Analytics を使用するようにログバケットをアップグレードし、リンクされたデータセットを作成します。 この構成では、ログデータの保存は Logging が行いますが、ログデータの読み取りは BigQuery で行うことができます。

Google Cloud コンソール

既存のログバケットの BigQuery データセットへのリンクを作成するには、次の操作を行います。

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

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

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

  2. ログバケットを見つけ、[Log Analytics を使用可能] 列に [開く] が表示されていることを確認します。

    この列に[アップグレード] と表示される場合、ログバケットは Log Analytics を使用するようにアップグレードされていません。Log Analytics を構成します。

    1. [アップグレード] をクリックします。
    2. ダイアログで [確認] をクリックします。

    アップグレードが完了したら、次のステップに進みます。

  3. ログバケットで、[展開] をクリックし、[バケットを編集] をクリックします。

    [ログバケットを編集] ダイアログが開きます。

  4. [このバケットにリンクする新しい BigQuery データセットを作成する] を選択し、新しいデータセットの名前を入力します。

    データセット名は、Google Cloud プロジェクトごとに一意である必要があります。既存のデータセットの名前を入力すると、次のエラーを受信します。Dataset name must be unique in the selected region.

  5. [完了]、[バケットを更新] の順にクリックします。

    Logging の [ログストレージ] ページにリンクされたデータセット名が表示されてから BigQuery がデータセットを認識するまでに数分かかることがあります。

gcloud

ログ分析を使用するようにアップグレードされたログバケットのリンクされたデータセットを作成するには、gcloud logging links create コマンドを実行します。

gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION

指定した LINK_ID は BigQuery データセットの名前として使用されます。このフィールドの値は、Google Cloud プロジェクトで一意である必要があります。

links create コマンドは非同期です。非同期メソッドの出力は Operation オブジェクトで、メソッドの進行状況に関する情報が格納されています。メソッドが完了すると、Operation オブジェクトにステータスが含まれます。詳細については、非同期 API メソッドをご覧ください。

links create コマンドが完了するまでに数分かかります。

たとえば、次のコマンドは、my-bucket という名前のログバケットに mylink という名前のリンク済みデータセットを作成します。

gcloud logging links create mylink --bucket=my-bucket --location=global

データセット名は、Google Cloud プロジェクトごとに一意である必要があります。既存のデータセットと同じ名前のデータセットを作成しようとすると、次のエラーを受信します。

BigQuery dataset with name "LINK_ID" already exists.

Log Analytics を使用するようにアップグレードされていないログバケットに対して、リンクされたデータセットを作成しようとすると、次のエラーが報告されます。

A link can only be created for an analytics-enabled bucket.

REST

アップグレードされた既存のログバケットに対してリンクされた BigQuery データセットを作成するには、Log Analytics を使用します。Cloud Logging API の非同期 projects.locations.buckets.links.create メソッドを呼び出します。

次のように、メソッドの引数を準備します。

  1. create コマンドのリクエスト本文を作成します。リクエスト本文は Link オブジェクトの形式です。
  2. コマンドのクエリ パラメータには linkId=LINK_ID を使用します。指定した LINK_ID は BigQuery データセットの名前として使用されます。このフィールドの値は、Google Cloud プロジェクトで一意である必要があります。

非同期メソッドに対するレスポンスは、Operation オブジェクトです。このオブジェクトには、メソッドの進行状況に関する情報が格納されています。メソッドが完了すると、Operation オブジェクトにステータスが含まれます。詳細については、非同期 API メソッドをご覧ください。

links.create メソッドが完了するまでに数分かかります。

データセット名は、Google Cloud プロジェクトごとに一意である必要があります。既存のデータセットと同じ名前のデータセットを作成しようとすると、次のエラーを受信します。

BigQuery dataset with name "LINK_ID" already exists.

Log Analytics を使用するようにアップグレードされていないログバケットに対して、リンクされたデータセットを作成しようとすると、次のエラーが報告されます。

A link can only be created for an analytics-enabled bucket.

バケットをロックする

更新されないようにバケットをロックすると、バケットの保持ポリシーもロックされます。保持ポリシーがロックされると、バケット内のすべてのログエントリがバケットの保持期間を満了するまでバケットを削除できません。

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

Google Cloud コンソール

Google 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 に設定します。

バケットを一覧表示する

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

Google Cloud コンソール

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

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

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

[ログバケット] という名前のテーブルに、現在の Google 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

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

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

単一のログバケットの詳細を表示する手順は次のとおりです。

Google Cloud コンソール

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

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

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

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

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

  • 名前: ログバケットの名前。
  • 説明: ログバケットの説明。
  • 保持期間: Cloud Logging がバケットのデータを保存する日数。
  • リージョン: バケットのデータが保存される地理的なロケーション。
  • Log Analytics: Log Analytics を使用するようにバケットがアップグレードされているかどうかを示します。
  • BigQuery 分析: BigQuery データセットがバケットにリンクされているかどうかを示します。
  • BigQuery データセット: BigQuery データセットへのリンクを表示します。この BigQuery データセットが [BigQuery Studio] ページで開きます。BigQuery のリンクが有効になった日付も表示されます。

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 を使用します。

バケットを削除する

ログバケットを削除する方法は次のとおりです。

Google Cloud コンソール

ログバケットを削除する方法は次のとおりです。

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

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

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

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

  3. [BigQuery のリンクされたデータセット] 列にリンクが表示されている場合は、リンクされた BigQuery データセットを削除します。

    1. [バケットを編集] をクリックします。

    2. [このバケットにリンクする新しい BigQuery データセットを作成する] チェックボックスをオフにして、[完了] をクリックし、[バケットを更新] をクリックします。

      [ログストレージ] ページに戻り、削除するバケットの [その他] をクリックし、次の手順に進みます。

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

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

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

gcloud

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

gcloud logging buckets delete BUCKET_ID --location=LOCATION

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

REST

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

ログバケットにリンクされた BigQuery データセットがある場合、そのバケットを削除するとエラーになります。ログバケットを削除する前に、リンクされたデータセットを削除する必要があります。

削除されたバケットはこの保留状態が 7 日間続き、Logging はその間、ログをバケットにルーティングし続けます。削除されたバケットへのログのルーティングを停止するには、そのバケットを宛先として持つログシンクを削除するか、シンクのフィルタを変更して削除されたバケットへのログのルーティングを停止します。

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

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

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

Google Cloud コンソール

削除保留中のログバケットを復元する手順は次のとおりです。

  1. Google 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 を使用します。

ログバケットへの保存ログバイト数の月間合計に関するアラート

アラート ポリシーを作成するには、Google Cloud コンソールの [ログストレージ] ページで、 [使用状況アラートを作成] をクリックします。このボタンをクリックすると、Monitoring の [アラート ポリシーの作成] ページが開き、指標タイプ フィールドに logging.googleapis.com/billing/bytes_ingested が入力されます。

ログバケットに書き込まれたログバイト数が Cloud Logging のユーザー定義の上限を超えたときにトリガーされるアラート ポリシーを作成するには、次の設定を使用します。

[新しい条件]
フィールド

リソースと指標 [リソース] メニューで、[グローバル] を選択します。
[指標カテゴリー] メニューで、[ログベースの指標] を選択します。
[指標] メニューで、[取り込みログバイト数の月間合計] を選択します。
フィルタ なし
時系列全体
時系列集計
sum
ローリング ウィンドウ 60 m
ローリング ウィンドウ関数 max
アラート・トリガーの構成
フィールド

条件タイプ Threshold
アラート トリガー Any time series violates
しきい値の位置 Above threshold
しきい値 許容値を決定します。
再テスト ウィンドウ 最小許容値は 30 分です。

アラート ポリシーに関する説明は、アラートの概要をご覧ください。

バケットに書き込む

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

バケットからの読み取り

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

ログバケットからログを読み取る手順は次のとおりです。

Google Cloud コンソール

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

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

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

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

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

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

gcloud

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

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

REST

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

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

カスタム保持の構成

ログバケットを作成するときに、Cloud Logging がバケットのログを保存する期間をカスタマイズできます。 保持期間は、ユーザー定義のログバケットと _Default ログバケットのそれぞれで構成できます。

バケットの保持期間を短縮すると、7 日間の猶予期間があり、その間、期限切れのログは削除されません。期限切れのログに対してクエリを実行することや表示することはできませんが、この 7 日間はバケットの保持期間を延長することで完全なアクセス権を復元できます。猶予期間中に保存されたログは、保持費用にカウントされます。

ログバケットの保持期間を更新する手順は次のとおりです。

Google Cloud コンソール

ログバケットの保持期間を更新する手順は次のとおりです。

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

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

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

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

  3. [保持] フィールドに、Cloud Logging でログを保持する日数を入力します(1~3,650 日)。

  4. [バケットの更新] をクリックします。新しい保持期間が [ログバケット] のリストに表示されます。

gcloud

ログバケットの保持期間を更新するには、RETENTION_DAYS の値を設定した後で、gcloud logging buckets update コマンドを実行します。

gcloud logging buckets update BUCKET_ID  --location=LOCATION --retention-days=RETENTION_DAYS

たとえば、global ロケーションの _Default バケットのログを 1 年間保持する場合、コマンドは次のようになります。

gcloud logging buckets update _Default --location=global --retention-days=365

バケットの保持期間を延長すると、保持ルールの適応は先送りされ、過去に遡る適用はありません。ログは、該当する保持期間が経過すると復元できなくなります。

非同期 API メソッド

projects.locations.buckets.createAsync などの非同期メソッドのレスポンスは Operation オブジェクトです。

非同期 API メソッドを呼び出すアプリは、Operation.done フィールドの値が true になるまで operation.get エンドポイントをポーリングする必要があります。

  • donefalse の場合は、オペレーションが進行中です。

    ステータス情報を更新するには、operation.get エンドポイントに GET リクエストを送信します。

  • donetrue の場合、オペレーションは完了し、error フィールドまたは response フィールドが設定されます。

    • error: 設定された場合、非同期処理が失敗しました。このフィールドの値は、gRPC エラーコードとエラー メッセージを含む Status オブジェクトです。
    • response: 設定すると、非同期オペレーションが正常に完了し、値が結果に反映されます。

Google Cloud CLI を使用して非同期コマンドをポーリングするには、次のコマンドを実行します。

gcloud logging operations describe OPERATION_ID --location=LOCATION --project=PROJECT_ID

詳細については、gcloud logging operations describe をご覧ください。

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

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

このバケットを削除できないのはなぜですか?

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

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

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

  • ログバケットにリンクされた BigQuery データセットがないことを確認します。リンクされたデータセットがあるログバケットは削除できません。

    リンクされたデータセットがあるログバケットに対して delete コマンドを実行すると、次のエラーが表示されます。

    FAILED_PRECONDITION: This bucket is used for advanced analytics and has an active link. The link must be deleted first before deleting the bucket
    

    ログバケットに関連付けられたリンクを一覧表示するには、gcloud logging links list コマンドを実行するか、projects.locations.buckets.links.list API メソッドを実行します。

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

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

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

    [IAM] に移動

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

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

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

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

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

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

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

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

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

次のステップ

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

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

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