ログを保存するログバケットを構成する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

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

ログバケットをアップグレードすると、Log Analytics を使用できます。Log Analytics は、ログデータに対して SQL クエリを実行することができるため、セキュリティやネットワークの問題をトラブルシューティングするのに役立ちます。アップグレードして Log Analytics を使用する場合や、リンクされたデータセットが存在する場合、BigQuery を使用してログバケットに保存されているデータを表示することもできます。リンクされたデータセットを作成すると、ログデータを BigQuery に格納された他のデータと結合し、Looker Studio や Looker などの他のツールのデータにアクセスできます。

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

始める前に

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

  • Google Cloud プロジェクトの課金が有効になっていることを確認します。

  • Identity and Access Management(IAM)のロールで、バケットの作成、アップグレード、リンクに必要な権限が付与されていることを確認してください。

    ログ構成書き込み(roles/logging.configWriter)ロールは、バケットの管理に必要な権限を付与する最小限の事前定義ロールです。権限とロールの一覧については、IAM によるアクセス制御をご覧ください。

  • ログを保存できるサポートされているリージョンなど、LogBucket の形式の要件を把握します。

  • デフォルトのリソース ロケーションを設定して、組織の _Required バケットと _Default バケットにデフォルトのストレージ リージョンを適用することを検討してください。

  • BigQuery を使用してログバケットに保存されているデータを表示するには、次のようにします。

バケットの作成

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

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

Google Cloud コンソール

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

  1. Logging メニューから [ログストレージ] を選択します。

    ログストレージに移動

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

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

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

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

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

      リージョンは自動的に global に設定され、保持期間はデフォルト値に設定されます。これらの設定は変更できません。

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

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

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

    Log Analytics を使用するようにアップグレードされたログバケットのリージョンは設定できません。

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

    ログバケットにカスタム保持期間を設定し、Log Analytics を使用するようにアップグレードする場合は、保持期間をデフォルト値に変更する必要があります。

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

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

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

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

    これらのステップが完了するまで、少し時間がかかる場合があります。

gcloud

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

gcloud logging buckets create BUCKET_ID --location=LOCATION OPTIONAL_FLAGS

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

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

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

API

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

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

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

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

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

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

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

ログの取り込みの追跡

Google Cloud コンソールの [ログストレージ] ページでは、ログバケットに取り込まれたログデータの量が追跡されます。

Cloud プロジェクトのログデータの取り込みを追跡するには、コンソールの [ログストレージ] ページに移動します。

ログストレージに移動

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

要約統計情報レポートでは、現在選択されているプロジェクトのデータ取り込み量が記録されます。

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

  • 現在の合計ボリューム: 今月の初日から Cloud プロジェクトで取り込まれたログデータの量。

  • 先月のボリューム: 先月に Cloud プロジェクトで取り込まれたログデータの量。

  • 月末までの予想ボリューム: 今月の初日から月末までに Cloud プロジェクトで取り込まれるログデータの推定量(現在の使用量に基づく)。

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

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

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

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

バケットの管理

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

バケットを更新する

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

Google Cloud コンソール

バケットのプロパティを更新するには、次のようにします。

  1. 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"

API

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

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

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

  • ログバケットは Google Cloud プロジェクト レベルで作成されました。
  • バケットは global リージョンを使用します。
  • バケットの保持期間はデフォルト値に設定する必要があります。
  • 顧客管理の暗号鍵(CMEK)が無効になっていること。
  • フィールド レベルのアクセス制御が構成されていないこと。
  • ログバケットは、_Required バケットでない限りロック解除されます。
  • バケットの更新が保留中でないこと。

Google Cloud コンソール

既存のバケットをアップグレードして Log Analytics を使用するには、次の手順を行います。

  1. Logging メニューから [ログストレージ] を選択します。

    ログストレージに移動

  2. アップグレードするバケットを探します。

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

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

gcloud

Log Analytics を使用するようにログバケットをアップグレードするには、Google Cloud コンソールを使用する必要があります。

API

Log Analytics を使用するようにログバケットをアップグレードするには、Google Cloud コンソールを使用する必要があります。

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

Google Cloud コンソール

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

  1. このドキュメントの始める前にセクションを確認します。

  2. Logging メニューから [ログストレージ] を選択します。

    ログストレージに移動

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

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

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

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

  4. ログバケットで、その他アイコン をクリックし、[バケットを編集] をクリックします。

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

  5. [このバケットにリンクする新しい BigQuery データセットを作成する] を選択し、新しいデータセットの名前を入力します。データセット名は Google Cloud プロジェクトで一意である必要があります。

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

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

gcloud

リンクされたデータセットを作成するには、Google Cloud コンソールを使用する必要があります。

API

リンクされたデータセットを作成するには、Google Cloud コンソールを使用する必要があります。

バケットをロックする

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

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

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

API

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

バケットを一覧表示する

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

Google Cloud コンソール

[ログストレージ] ページに移動します。

ログストレージに移動

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

API

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

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

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

Google Cloud コンソール

[ログストレージ] ページに移動します。

ログストレージに移動

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

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

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

gcloud

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

gcloud logging buckets describe _Default --location=global

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

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

API

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

バケットを削除する

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

Google Cloud コンソール

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

  1. 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

API

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

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

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

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

Google Cloud コンソール

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

  1. Logging メニューから [ログストレージ] を選択します。

    ログストレージに移動

  2. 復元するバケットで、その他アイコン をクリックします。

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

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

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

gcloud

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

gcloud logging buckets undelete BUCKET_ID --location=LOCATION

API

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

バケットへの書き込み

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

バケットからの読み取り

各ログバケットには、一連のログビュー保存されています。ログバケットからログを読み取るには、ログバケットのログビューへのアクセス権が必要です。ログビューの詳細については、ログビューの管理をご覧ください。

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

Google Cloud コンソール

ログ エクスプローラに表示されるログの範囲を絞り込むには、[範囲を絞り込む] オプションを使用します。現在の Cloud プロジェクト内のログのみを検索することも、1 つ以上のストレージ ビューでログを検索することもできます。ログ エクスプローラの範囲を絞り込むには、次の手順を行います。

  1. Logging メニューから [ログ エクスプローラ] を選択します。

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

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

  3. [範囲を絞り込む] ダイアログで、[絞り込む] オプションを選択します。

  4. [ストレージによるスコープ] を選択し、表示するバケットを 1 つ以上選択します。

    ダイアログには、次の条件を満たしているストレージ ビューが一覧表示されます。

    • ストレージ ビューにアクセスできます。
    • ログバケットが選択した Cloud プロジェクトに属しているか、選択した Cloud プロジェクトがストレージ バケットにログをすでにルーティングしています。

gcloud

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

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

API

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

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

カスタム保持の構成

ログバケットを作成するときに、Cloud Logging がバケットのログを保存する期間をカスタマイズできます。保持期間は、ユーザー定義のログバケットと _Default ログバケットのそれぞれで構成できます。 ログバケットにカスタム保持期間を設定し、Log Analytics を使用するようにアップグレードする場合は、保持期間をデフォルト値に変更する必要があります。

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

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

Google Cloud コンソール

ログバケットの保持期間を更新するには、次のようにします。

  1. Logging メニューから [ログストレージ] を選択します。

    ログストレージに移動

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. バケットを含む Cloud プロジェクトの [Identity and Access Management] ページに移動します。

    IAM に移動

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

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

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

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

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

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

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

この問題を解決するには、[範囲を絞り込む] パネルで [ストレージによるスコープ] を選択してから、Cloud プロジェクトの _Default バケットを選択します。これで、除外されたログが表示されなくなります。

バケットのログベースの指標を作成できません。なぜですか?

ログベースの指標は、単一の Google Cloud プロジェクトにのみ適用されます。ログバケット、またはフォルダや組織などの他の Google Cloud リソースに対するログベースの指標を作成することはできません。

次のステップ

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

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