このドキュメントでは、Cloud Console、Google Cloud CLI、Logging API を使用して Cloud Logging バケットを作成、管理する方法について説明します。
このドキュメントでは、Cloud プロジェクト レベルでバケットを作成および管理する手順を説明しますが、フォルダレベルや組織レベルでバケットを作成することもできます。
バケットのコンセプトの概要については、ルーティングとストレージの概要: ログバケットをご覧ください。
始める前に
ログバケットを使用するには、次のことを行う必要があります。
Google Cloud プロジェクトの課金が有効になっていることを確認します。
Cloud プロジェクトのログバケットを作成、管理するための権限を付与されていることを確認します。バケットに保存されているデータにアクセスするために必要な権限とロールのリストについては、アクセス制御ガイドをご覧ください。
ログを保存できるサポートされているリージョンなど、
LogBucket
のフォーマット要件を理解します。デフォルトのリソース ロケーションを設定して、組織の
_Required
バケットと_Default
バケットにデフォルトのストレージ リージョンを適用することを検討してください。
バケットの作成
Cloud プロジェクトごとに最大 100 個のバケットを作成できます。
Cloud プロジェクトでユーザー定義のログバケットを作成する手順は次のとおりです。
Console
Cloud プロジェクトでログバケットを作成するには、次の手順を行います。
Logging メニューから [ログストレージ] を選択します。
[ログバケットを作成] をクリックします。
バケットの [名前] と [説明] を入力します。
(省略可)ログを保存するリージョンを設定するには、[ログバケットのリージョンを選択] プルダウン メニューをクリックして、リージョンを選択します。リージョンを選択しない場合は、
global
リージョンが使用されます。つまり、ログは物理的にどのリージョンにも配置できます。(省略可)バケット内のログにカスタム保持期間を設定するには、[次] をクリックします。
[保持] フィールドに、Cloud Logging でログを保持する日数を入力します(1~3,650 日)。保持期間をカスタマイズしない場合、デフォルトの
30 days
になります。バケットを作成した後にバケットを更新して、カスタム保持を適用するともできます。
[バケットを作成] をクリックします。新しいバケットが [ログバケット] のリストに表示されます。
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 を使用します。次のように、メソッドの引数を準備します。
parent
パラメータを、バケットを作成するリソースに設定します。projects/PROJECT_ID/locations/LOCATION
変数 LOCATION は、ログを保存するリージョンです。
たとえば、リージョン
asia-east2
にプロジェクトmy-project
用のバケットを作成する場合、parent
パラメータは次のようになります:projects/my-project/locations/asia-east2
bucketId
パラメータを設定します。例:my-bucket
projects.locations.buckets.create を呼び出してバケットを作成します。
バケットを作成したら、ログビューを構成して、新しいバケットのログにアクセスできるユーザーとアクセスできるログを制御できます。バケットを更新して、カスタム保持、制限付きフィールド、または CMEK 設定を構成することもできます。
ログの取り込みの追跡
Cloud Console の [ログストレージ] ページでは、ログバケットに取り込まれたログデータの量が追跡されます。
Cloud プロジェクトのログデータの取り込みを追跡するには、コンソールの [ログストレージ] ページに移動します。
[ログストレージ] ページに、Cloud プロジェクトの統計情報の概要が表示されます。
次の統計情報が報告されます。
現在の合計ボリューム: 今月の初日から Cloud プロジェクトで取り込まれたログデータの量。
先月のボリューム: 先月に Cloud プロジェクトで取り込まれたログデータの量。
月末までの予想ボリューム: 今月の初日から月末までに Cloud プロジェクトで取り込まれるログデータの推定量(現在の使用量に基づく)。
ログ取り込み量の統計情報には、_Required
バケットは含まれません。そのバケットのログを除外したり、無効にしたりすることはできません。
Cloud Console の [ログルーター] ページには、毎月の割り当てを超えるログの取り込みやストレージの料金を最小限に抑えるために使用できるツールが用意されています。以下の操作を行います。
- バケットレベルでのログの取り込みを無効にする
- 特定のログエントリを Logging の取り込みから除外します。
詳細については、シンクを管理するをご覧ください。
バケットの管理
このセクションでは、Google Cloud CLI または Google Cloud Console を使用してログバケットを管理する方法を説明します。
バケットを更新する
バケットの属性を更新するには、次の手順を行います。
Console
バケットの属性を更新するには、次の手順を行います。
Logging メニューから [ログストレージ] を選択します。
更新するバケットで、[その他] more_vert をクリックします。
[バケットの編集] を選択します。
必要に応じてバケットを編集します。
[バケットの更新] をクリックします。
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 を使用します。
バケットをロックする
更新されないようにバケットをロックすると、バケットの保持ポリシーもロックされます。保持ポリシーがロックされると、バケット内のすべてのログがバケットの保持期間を満了するまでバケットを削除できません。
他のユーザーがログバケットを更新または削除できないようにするには、バケットをロックします。バケットをロックする手順は次のとおりです。
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
API
バケット属性をロックするには、Logging API の projects.locations.buckets.patch を使用します。locked
パラメータを true
に設定します。
バケットを一覧表示する
Cloud プロジェクトに関連付けられたログバケットを一覧表示し、保持設定などの詳細を確認するには、次のようにします。
Console
[ログストレージ] ページに移動します。
現在の Cloud プロジェクトに関連付けられたバケットを一覧表示するテーブル [ログバケット] が表示されます。
この表には、各ログバケットの次の属性が一覧表示されます。
- 名前: 作成時に付けられたバケットの名前。
- 説明: 作成時に与えられたバケットの説明。
- 保持期間: Cloud Logging がバケットのデータを保存する日数。
- リージョン: バケットのデータが保存される地理的なロケーション。
- ステータス: バケットがロックされているか、ロック解除されているか。
Cloud Logging がバケットを削除保留にしている場合、そのテーブル エントリには警告( warning)の注記が付けられます。
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 を使用します。
バケットの詳細を表示する
単一のログバケットの詳細を表示する手順は次のとおりです。
Console
[ログストレージ] ページに移動します。
ログバケットで、[その他] more_vert > [バケットの詳細を表示] をクリックします。
このダイアログ ボックスには、ログバケットの次の属性が表示されます。
- 名前: 作成時に付けられたバケットの名前。
- 説明: 作成時に与えられたバケットの説明。
- 保持期間: Cloud Logging がバケットのデータを保存する日数。
- リージョン: バケットのデータが保存される地理的なロケーション。
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 を使用します。
バケットを削除する
ログバケットを削除する方法は次のとおりです。
Console
ログバケットを削除するには、次の手順を行います。
Logging メニューから [ログストレージ] を選択します。
削除するバケットで、[その他] more_vert をクリックします。
[バケットの削除] を選択します。
確認パネルで [削除] をクリックします。
[ログストレージ] ページに、バケットが削除保留中であることを示すインジケータが表示されます。すべてのログを含むバケットは 7 日後に削除されます。
gcloud
ログバケットを削除するには、gcloud logging buckets delete コマンドを実行します。
gcloud logging buckets delete BUCKET_ID --location=LOCATION
API
バケットを削除するには、Logging API の projects.locations.buckets.delete を使用します。
削除されたバケットはこの保留状態が 7 日間続き、Logging はその間、ログをバケットにルーティングし続けます。削除されたバケットへのログのルーティングを停止するには、そのバケットを宛先として持つログシンクを削除するか、シンクのフィルタを変更して削除されたバケットへのログのルーティングを停止します。
削除したバケットを復元する
削除保留状態のログバケットは削除を取り消して、復元することもできます。ログバケットを復元する方法は次のとおりです。
Console
削除保留中のログバケットを復元する手順は次のとおりです。
Logging メニューから [ログストレージ] を選択します。
復元するバケットで、その他アイコン more_vert をクリックします。
[削除したバケットの復元] を選択します。
確認パネルで [復元] をクリックします。
ログストレージ ページで、削除が保留中であることを示すインジケータがバケットから削除されます。
gcloud
削除保留中のログバケットを復元するには、gcloud logging buckets undelete コマンドを実行します。
gcloud logging buckets undelete BUCKET_ID --location=LOCATION
API
削除保留中のバケットを復元するには、Logging API の projects.locations.buckets.undelete を使用します。
バケットへの書き込み
ログバケットに直接ログを書き込むことはありません。代わりに、ログを Google Cloud リソース(Cloud プロジェクト、フォルダ、または組織)に書き込みます。親リソースのシンクは、ログバケットを含むエクスポート先にログを転送します。ログがシンクのフィルタと一致し、シンクにログをログバケットに転送する権限がある場合、シンクはログをログバケットの宛先に転送します。
バケットからの読み取り
各ログバケットには、一連のログビュー保存されています。ログバケットからログを読み取るには、ログバケットのログビューへのアクセス権が必要です。ログビューの詳細については、ログビューの管理をご覧ください。
ログバケットからログを読み取る手順は次のとおりです。
Console
ログ エクスプローラに表示されるログの範囲を絞り込むには、[範囲を絞り込む] オプションを使用します。現在の Cloud プロジェクト内のログのみを検索することも、1 つ以上のストレージ ビューでログを検索することもできます。ログ エクスプローラの範囲を絞り込むには、次の手順を行います。
Logging メニューから [ログ エクスプローラ] を選択します。
[範囲を絞り込む] を選択します。
[範囲を絞り込む] ダイアログで、[絞り込む] オプションを選択します。
[ストレージによるスコープ] を選択し、表示するバケットを 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
ログバケットのそれぞれで構成できます。
バケットの保持期間を短縮すると、7 日間の猶予期間があり、その間は期限切れのログは削除されません。期限切れのログに対するクエリの実行や表示はできませんが、この 7 日間はバケットの保持期間を延長することで完全なアクセス権を復元できます。猶予期間中に保存されたログは、ストレージ コストにカウントされます。
ログバケットの保持期間を更新する手順は次のとおりです。
Console
ログバケットの保持期間を更新する手順は次のとおりです。
Logging メニューから [ログストレージ] を選択します。
更新するバケットで、[その他] more_vert をクリックします。
[バケットの編集] を選択します。
[保持] フィールドに、Cloud Logging でログを保持する日数を入力します(1~3,650 日)。
[バケットの更新] をクリックします。新しい保持期間が [ログバケット] のリストに表示されます。
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 権限がサービス アカウントにあるかどうかを確認するには、次の操作を行います。
バケットを含む Cloud プロジェクトの [Identity and Access Management] ページに移動します。
[権限] タブで、[ロール] 別に表示します。Cloud プロジェクトに関連付けられたすべての IAM ロールとプリンシパルを含むテーブルが表示されます。
テーブルの [フィルタ] テキスト ボックス filter_list に「ログバケット書き込み」と入力します。
ログバケット書き込みのロールを持つプリンシパルが表示されます。プリンシパルがサービス アカウントの場合、その ID には文字列
gserviceaccount.com
が含まれます。省略可: クラウドプロジェクトにログをルーティングできないようにサービスアカウントを削除する場合は、その横にあるチェックボックス check_box_outline_blankをオンにして、[削除]をクリックします。
ログが _Default
シンクから除外されていても Cloud プロジェクトのログが表示されるのはなぜですか?
組織全体からのログを集約する一元型の Cloud プロジェクトのログバケットでログを表示している可能性があります。
一元型の Cloud プロジェクトのログにアクセスしていて、_Default
シンクから除外したログが表示される場合は、次のいずれかの条件でログを表示している可能性があります。
以前のログビューアでログを表示している(一元化されたログの表示はサポートされていません)。
この問題を解決するには、ログ エクスプローラに切り替えます。
[範囲を絞り込む] パネルで [プロジェクトで絞り込む] を選択した状態でログ エクスプローラを使用してログを表示している(格納している場所に関係なく、プロジェクトで生成されたログが表示されます)。
この問題のトラブルシューティングを行うには、代わりに、ログ エクスプローラの [範囲を絞り込む] パネルで [ストレージによるスコープ] を選択し、Cloud プロジェクトで
_Default
バケットを選択します。これで、除外されたログが表示されなくなります。
バケットのログベースの指標を作成できません。なぜですか?
ログベースの指標は、単一の Google Cloud プロジェクトにのみ適用されます。ログバケット、またはフォルダや組織などの他の Google Cloud リソースに対するログベースの指標を作成することはできません。
次のステップ
Logs Bucket API メソッドの詳細については、LogBucket
リファレンス ドキュメントをご覧ください。
ログバケットを使用して一般的なユースケースに対応する方法については、次のトピックをご覧ください。