このドキュメントでは、_Default
シンクを使用して、特定のリージョンにある Cloud Logging バケットにログエントリを転送する方法について説明します。サポートされているリージョンの一覧については、ロケーションをご覧ください。
組織またはフォルダのデフォルト設定を構成することで、新しい _Default
バケットと _Required
バケットのデフォルトのストレージのロケーションを設定することもできます。詳細については、デフォルトのストレージのロケーションを設定するをご覧ください。
このガイドでは、すべてのログを europe-west1 リージョンにリダイレクトする例を使用してこのプロセスを説明します。このプロセスには、次のステップが含まれます。
ログを保存するために、指定されたリージョンにログバケットを作成します。
_Default
シンクをリダイレクトして、ログを新しいログバケットに転送します。Logs Explorer でログを検索します。
(省略可)ログの保持期間を更新します。
概要
Logging では、ログバケットはリージョン リソースです。ログの保存、インデックス登録、検索を行うインフラストラクチャは特定の地理的な場所にあります。Google Cloud はそのインフラストラクチャを管理して、アプリケーションがそのリージョン内のゾーン全体で冗長的に利用できるようにします。
組織によっては、ログデータを特定のリージョンに保存しなければならない場合があります。組織のレイテンシ、可用性、またはコンプライアンスの要件を満たしていることが、ログを保存するリージョンを選択する際の主な判断材料になります。ログ ストレージのリージョンを選択するときは、アプリケーションが使用するその他の Google Cloud プロダクトとサービスのロケーションを考慮してください。
主なコンセプト
Cloud Logging のデータ リージョンには、次の主要なコンセプトが適用されます。
ログルーターのロケーション
ログルーターは、Cloud Logging API に書き込まれたすべてのログエントリを処理します。各ログエントリを既存のルールと照合して、どのログエントリを Logging バケットに保存するか、シンクを使用してサポートされている宛先にどのログエントリをルーティングするかを判断します。また、ログを確実に転送するため、ログルーターもログを一時的に保存し、シンクの一時的な中断から保護します。
ログルーターは、ログが受信されたリージョン内でログを処理します。 ログルーターではシンクの定義によって、あるいは Security Command Center Threat Detection など別の Google Cloud サービスでログデータを共有することにしている場合は、ログを別のリージョンに送信することがあります。ログシンクは、リージョンに関係なく均等にログに適用されます。
ログバケットのロケーション
ログバケットは、ログデータを保存して整理する Google Cloud プロジェクト、請求先アカウント、フォルダ、組織のコンテナです。
Google Cloud プロジェクト、請求先アカウント、フォルダ、組織ごとに、Logging によって _Required
と _Default
の 2 つのログバケットが自動的に作成されます。これらは global
のロケーションにあります。既存のバケットのロケーションは変更できません。ただし組織では、これらのバケットに対して異なるデフォルトのロケーションを設定するポリシーを作成できます。詳細については、組織とフォルダのデフォルト設定を構成するをご覧ください。
任意の Google Cloud プロジェクトに対してユーザー定義のログバケットを作成することもできます。ユーザー定義のログバケットを作成するときに、ログバケットのロケーションを指定できます。ログバケットを作成した後でロケーションを変更することはできませんが、新しいバケットを作成し、シンクを使用してログエントリを新しいログバケットに転送することは可能です。バケットのロケーションを設定する方法については、ログをリージョン化するをご覧ください。
Logging では、複数のリージョンのログを一緒にクエリすることができます。その場合、クエリは、クエリ対象のバケットと同じロケーションで処理された後、クエリの受信元であったリージョンに集約されて結果が返されます。
準備
このガイドの手順を完了するには、以下を確認しておく必要があります。
どの Google Cloud プロジェクトにログを保存しますか。このガイドでは、logs-test-project という Google Cloud プロジェクトを使用します。
ログを保存するログバケットの名前と場所。この例では、バケット名は region-1-logs-bucket、場所は region-1-logs-bucket です。
集約対象のログ。この例では、
_Default
シンクによって転送されたすべてのログを含めます。
サポートされるリージョン
ログバケットを作成する際に、ログの保存先を選択できます。サポートされているリージョンの一覧については、ロケーションをご覧ください。
ログバケットを作成する
ログバケットには、他の Google Cloud プロジェクト、フォルダ、組織から転送されたログが保存されます。詳細については、ログバケットを構成するをご覧ください。
ログを保存する Google Cloud プロジェクトにバケットを作成するには、次の手順を行います。
-
Google Cloud コンソールに移動します。
ターミナルで次のコマンドを実行してバケットを作成し、太字の部分は実際の情報に置き換えます。
gcloud logging buckets create region-1-logs-bucket \ --location=europe-west1 \ --project=logs-test-project
バケットが作成されたことを確認します。
gcloud logging buckets list --project=logs-test-project
_Default
ログシンクをリダイレクトする
シンクを作成して、ログをログバケットに転送します。シンクには、このシンクを介してエクスポートするログエントリを選択するフィルタとエクスポート先があります。このガイドでは、既存の _Default
シンクを更新して、ログをバケット region-1-logs-bucket に転送します。
シンクを更新するには、次のコマンドを実行し、太字の部分は実際の情報に置き換えます。
gcloud logging sinks update _Default \
logging.googleapis.com/projects/logs-test-project/locations/europe-west1/buckets/region-1-logs-bucket \
--log-filter='NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT
LOG_ID("externalaudit.googleapis.com/activity") AND NOT
LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT
LOG_ID("externalaudit.googleapis.com/system_event") AND NOT
LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT
LOG_ID("externalaudit.googleapis.com/access_transparency")' \
--description="Updated the _Default sink to route logs to the europe-west1 region"
シンクをテストするためのログエントリを作成する
シンクが正しく更新されたことを確認するには、次の手順に従います。
gcloud logging write
コマンドを使用して、リージョン化されたバケットにテスト ログ メッセージを送信し、数分待ちます。次に例を示します。gcloud logging write TEST_LOG_NAME "Test to route logs to region-1-logs-bucket" --project=logs-test-project
-
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Logging] である結果を選択します。
[Log field] ペインで、[グローバル] リソースタイプを選択します。
テストのログエントリが [クエリ結果] パネルに表示されます。
Google Cloud コンソールでログを検索する
前のセクションで権限を設定したら、Google Cloud コンソールに移動し、次の手順を行います。
-
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Logging] である結果を選択します。
[範囲を絞り込む] を選択します。
[範囲を絞り込む] パネルで、[ストレージごとのスコープ] を選択します。
[region-1-logs-bucket] を選択します。
[適用] をクリックします。
[ログ エクスプローラ] が更新され、バケットのログが表示されます。
ログ エクスプローラの使用については、ログ エクスプローラの使用をご覧ください。
(省略可)バケットのログ保持期間を更新する
バケット内のログの保持期間を変更するには、次のコマンドを実行します。
gcloud logging buckets update region-1-logs-bucket \
--location=europe-west1 --project=logs-test-project \
--retention-days=14
次のステップ
他の Google Cloud サービスに適用される、ゾーンなどの追加のロケーションに基づくコンセプトを確認する。
データ ガバナンスのベスト プラクティスについては、以下のホワイトペーパーをお読みください。