ログバケットの管理

このページでは、ログバケットを作成して管理する方法について説明します。

始める前に

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

  • Google Cloud プロジェクトの課金が有効になっていることを確認します。
  • 自分と Cloud プロジェクト メンバーに、Cloud プロジェクト ログバケットを作成、管理するための権限があることを確認します。詳しくは、このページのアクセス制御をご覧ください。

バケットの管理

このセクションでは、gcloud コマンドライン ツールまたは Google Cloud Console を使用してログバケットを管理する方法について説明します。

ログバケットの作成

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

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

Console

Cloud プロジェクトにログバケットを作成する手順は次のとおりです。

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

    ログストレージに移動

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

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

  4. (省略可)バケット リージョンを設定するには、[ログのバケット リージョンを選択] プルダウン メニューをクリックして、バケットを配置するリージョンを選択します。リージョンを選択しない場合、この値が global に設定されます。これは、どのリージョンにもログを物理的に保存できることを意味します。

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

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

    後からカスタム保持を構成することもできます。

  6. [バケットを作成] をクリックします。新しいバケットが [ログバケット] のリストに表示されます。

gcloud

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

gcloud logging buckets create BUCKET_ID --location=LOCATION OPTIONAL_FLAGS

次に例を示します。

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

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

ログバケットの更新

バケットの属性を更新するには、次の手順を行います。

Console

バケットの属性を更新するには、次の手順を行います。

  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"

ログバケットのロック

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

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

Console

Cloud Console では、ログバケットのロックはサポートされていません。

gcloud

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

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

次に例を示します。

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

ログバケットの一覧表示

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

Console

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

ログストレージに移動

現在の 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 つのバケットの属性を表示することもできます。たとえば、_Default ログバケットの詳細を表示するには、gcloud logging buckets describe コマンドを実行します。

gcloud logging buckets describe _Default --location=global

ログバケットの詳細の表示

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

Console

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

ログストレージに移動

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

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

  • 名前: 作成時に付けられたバケットの名前。
  • 説明: 作成時に与えられたバケットの説明。
  • 保持期間: Cloud Logging がバケットのデータを保存する日数。
  • リージョン: バケットのデータが保存される地理的なロケーション。

gcloud

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

gcloud logging buckets describe _Default --location=global

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

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

ログバケットの削除

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

Console

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

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

    ログストレージに移動

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

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

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

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

gcloud

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

gcloud logging buckets delete BUCKET_ID --location=LOCATION

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

削除されたログバケットの復元

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

Console

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

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

    ログストレージに移動

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

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

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

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

gcloud

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

gcloud logging buckets undelete BUCKET_ID --location=LOCATION

ログバケットへの書き込み

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

ログバケットからの読み取り

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

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

Console

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

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

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

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

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

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

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

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

gcloud

ログバケットからログを読み取るには、gcloud logging read コマンドを実行します。

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

カスタム保持の構成

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

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

Console

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

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

    ログストレージに移動

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

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

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

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

gcloud

たとえば、_Default ログバケットの保持期間を更新するには、RETENTION_DAYS の値を設定した後、次のgcloud コマンドライン ツール コマンドを実行します。

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

たとえば、ログを _Default バケットに 1 年間保持するには、次のコマンドを実行します。

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

アクセス制御

Identity and Access Management のロールと権限は、Logging データへのアクセスを制御します。次に、Cloud プロジェクト メンバーがログバケットにアクセスするために必要な一般的なロールと権限の概要を示します。

Cloud Logging では、Identity and Access Management のロールと権限を構成するときに特権を制限することを推奨しています。詳細については、IAM の安全な使用をご覧ください。

ログバケットのアクティビティ ユーザー アクセス IAM の権限 IAM ロールと推奨されるアクセス制御の設定
ログバケット構成の管理 ログバケットの作成、一覧表示、更新、削除、削除の取り消し、詳細表示を行えるユーザー。 logging.buckets.{create,list,get,update,delete,undelete} これらの権限は、ロギング構成書き込みまたはロギング管理者のロールの一部として提供されています。権限が制限されたカスタムロールを作成することもできます。
ログバケットにログエントリを書き込む 特定のログバケットにログエントリを書き込むことができるユーザー。 logging.buckets.write

ログシンクが同じ Cloud プロジェクトのログバケットにログエントリを転送する場合、ログシンクに権限は必要ありません。

ログシンクが別の Cloud プロジェクトのログバケットにログを転送する場合は、ログシンクに logging.buckets.write 権限を付与する必要があります。ログバケットを含む Cloud プロジェクトでこの権限を付与するには、ログバケット書き込みのロールを使用します。このロールは、特定のログバケットに一致する IAM 条件を使用して、ログシンクのサービス アカウントに付与する必要があります。

gcloud ツールを使用してログシンクに IAM 条件を設定する例については、1 つのプロジェクトのログを別の Cloud プロジェクトのバケットにルーティングするをご覧ください。

ログバケットからログエントリを読み取る ログビューを使用して、特定のログバケットからログをダウンロードし、ログ、リソースキー、値を読み取ることができます。 logging.logEntries.download
logging.views.{access,listLogs,listResourceKeys,listResourceValues}
この権限を付与するには、ログビュー アクセサーのロールを使用します。このロールは、特定のログビューに一致する IAM 条件を使用して付与する必要があります。

ログビューでこの IAM 条件を設定する方法については、ログビューにユーザーを追加するをご覧ください。

ロギングのアクセス制御の一覧については、アクセス制御をご覧ください。

トラブルシューティングとよくある質問

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

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

まず、バケットを削除するための適切な権限があることを確認します。

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

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

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

一元型の Cloud プロジェクトのログにアクセスしていて、_Default シンクから除外したログが表示される場合は、次のいずれかの条件でログを表示している可能性があります。

  • 以前のログビューアでログを表示している(一元化されたログの表示はサポートされていません)。

    この問題を解決するには、Logs Explorer に切り替えます。

  • [範囲を絞り込む] パネルで [プロジェクトで絞り込む] を選択した状態でログ エクスプローラを使用してログを表示している(格納している場所に関係なく、プロジェクトで生成されたログが表示されます)。

    この問題のトラブルシューティングを行うには、代わりに、Log Exporer の [範囲を絞り込む] パネルで [ストレージによるスコープ] を選択し、Cloud プロジェクトで _Default バケットを選択します。これで、除外されたログが表示されなくなります。

ログバケットにログベースの指標を作成できないのはなぜですか?

ログベースの指標は、単一の Google Cloud プロジェクトにのみ適用されます。ログバケットや、Cloud 請求先アカウントや組織などの他の Google Cloud リソースについては作成できません。

次のステップ

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

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