このページでは、Cloud Logging を使用してログをエクスポートするコンセプトの概要について説明します。
ログをエクスポートする方法については、このページの次のステップをご覧ください。
ログの一部またはすべてをさまざまなシンクのエクスポート先にエクスポートできます。次のような理由でログのエクスポートが必要な場合があります。
- 読み取る可能性は低いものの、コンプライアンスを目的にログを保持するため。
- ログに対してビッグデータ分析ツールを使用するため。
- 他のアプリケーション、他のリポジトリ、またはサードパーティにログをストリーミングするため。
一般的なロギング エクスポート シナリオの詳細については、ロギングデータのエクスポートに関する設計パターンをご覧ください。
エクスポートの仕組み
次の図は、Cloud Logging がエクスポートされたログエントリを処理する方法を示しています。
監査ログ、プラットフォーム ログ、ユーザーログを含むすべてのログは、Cloud Logging API に送信され、ここでログルーターを通過します。ログルーターは、各ログエントリを既存のルールと照合して、取り込むログエントリ、エクスポートに含めるログエントリ、破棄するログエントリを決定します。詳しくは、ログルーターの概要をご覧ください。
エクスポートするには、エクスポートするログエントリを選択するフィルタを作成し、次のオプションからエクスポート先を選択します。
- Cloud Storage: Cloud Storage バケットに保存される JSON ファイル。
- BigQuery: BigQuery データセットに作成されるテーブル。
- Pub/Sub: Pub/Sub トピックに配信される JSON メッセージ。サードパーティによる Logging との統合サービス(Splunk など)をサポートします。
- 別の Google Cloud のクラウド プロジェクト: Cloud Logging ログバケットに保持されるログエントリ。
フィルタとエクスポート先はシンクと呼ばれるオブジェクトに保持されます。Google Cloud のプロジェクト、組織、フォルダ、請求先アカウントでシンクを作成できます。
シンクのプロパティと用語
シンクには次のプロパティがあります。
シンク識別子: シンクの名前。例:
my-vm-error-sink
親リソース: シンクを作成するリソース。親はほとんどの場合プロジェクトですが、次のいずれかになります。
"projects/[PROJECT_ID]" "folders/[FOLDER_ID]" "billingAccounts/[BILLING_ACCOUNT_ID]" "organizations/[ORGANIZATION_ID]"
シンクは、その親リソースに属するログのみをエクスポートできます。このルールの例外については、次の集約エクスポート プロパティをご覧ください。
シンクの完全なリソース名には、その親リソースとシンク識別子が含まれます。例:
"projects/[PROJECT_ID]/sinks/[SINK_ID]"
ログフィルタ: このシンクからエクスポートするログエントリを選択します。フィルタの例については、サンプルクエリをご覧ください。
エクスポート先: フィルタに一致するログエントリを送信する単一の場所。サポートされている宛先は次のとおりです。
Cloud Storage バケットは、安価で長期的なストレージを提供します。
storage.googleapis.com/[BUCKET_ID]
BigQuery データセットは、ビッグデータ分析機能を提供します。
bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET_ID]
Pub/Sub トピックは、他のアプリケーションまたはリポジトリにログエントリをストリーミングします。
pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]
Logging ログバケットは、保持期間をカスタマイズ可能なストレージを備えています。
logging.googleapis.com/projects/[PROJECT_ID]/locations/[REGION]/buckets/[BUCKET_ID]
ログ エクスプローラでは、[独自のエクスポート先] オプションも使用できます。これは、別のプロジェクトのエクスポート先にログを送信するエクスポートを作成する際に使用します。詳しくは、シンクの作成をご覧ください。
ログはどのプロジェクト内のエクスポート先にもエクスポートできます。ただし、エクスポート先がシンクのサービス アカウントをライターとして承認する場合に限ります。
書き込み ID: サービス アカウント名。エクスポート先のオーナーは、このサービス アカウントにエクスポート先への書き込み権限を付与する必要があります。ログのエクスポート時に、Logging はこの ID を承認に使用します。セキュリティを高めるために、新しいシンクは一意のサービス アカウントを取得します。
[GENERATED_ID_1]@[GENERATED_ID_2].iam.gserviceaccount.com
詳しくは、エクスポート先権限をご覧ください。
集約エクスポート
includeChildren
プロパティは集約エクスポートで説明されています。これは組織またはフォルダに作成されたシンクにのみ関連します。
シンクの詳細については、LogSink タイプ、projects.sinks.create API メソッド、API でのログのエクスポートをご覧ください。
シンクの仕組み
ログエントリがプロジェクト、フォルダ、請求先アカウント、または組織に到着するたびに、Logging はログエントリをそのリソース内のシンクと比較します。フィルタがログエントリと一致する各シンクは、ログエントリのコピーをシンクのエクスポート先に書き込みます。
アクセス制御
シンクを作成または変更するには、シンクの親リソースで Identity and Access Management 役割の オーナー または Logging/ログ構成書き込みが必要です。既存のシンクを表示するには、シンクの親リソースに IAM 役割の閲覧者または Logging / ログ閲覧者が必要です。詳しくは、アクセス制御をご覧ください。
ログをエクスポート先にエクスポートするには、シンクのライター サービス アカウントがエクスポート先への書き込みを許可されている必要があります。書き込み ID の詳細については、このページのシンク プロパティをご確認ください。
料金
Cloud Logging ではログのエクスポートは課金されませんが、エクスポート先の請求が適用されることがあります。詳しくは、該当するプロダクトの料金のページをご覧ください。
Cloud Logging から Virtual Private Cloud フローログを送信して除外した場合は、エクスポート先料金に加え VPC フローログの生成料金が適用されることにもご注意ください。
次のステップ
ログをエクスポートする
ログをエクスポートする方法については、次のページをご覧ください。
- ログルーターを使用するには、ログルーターを使用したエクスポートをご覧ください。
- Logging API を使用するには、API でのログのエクスポートに移動してください。
gcloud
コマンドライン ツールを使用するには、gcloud ロギングに移動してください。
エクスポートされたログを検索して使用する
エクスポートしたログエントリの形式と、エクスポートしたログをエクスポート先で整理する方法については、エクスポートしたログの使用に移動してください。
ログ エクスポート シナリオを探す
次のチュートリアルでは、ログをエクスポートするシナリオを説明します。各チュートリアルでは、要件、設定、使用方法について詳しく説明し、エクスポートの共有方法を示します。
- シナリオ - コンプライアンス要件のためのエクスポート
- シナリオ - セキュリティおよびアクセス解析のためのエクスポート
- シナリオ – Splunk へのエクスポート
- シナリオ - Elasticsearch へのエクスポート