ロギングデータをエクスポートするための設計パターン

この記事では、一般的なロギング エクスポート シナリオの設計パターンとベスト プラクティスを紹介する一連の記事を紹介します。

Cloud Logging は、ログ用の運用データストアと豊富なエクスポート機能を提供します。ログをエクスポートする理由には、コンプライアンス要件に準拠する目的で長期保存(月単位または年単位)用にログを保持すること、ログから抽出した指標に対してデータ分析を実行することなどがあります。Cloud Logging は、Cloud Storage、BigQuery、Pub/Sub、Elasticsearch にエクスポートできます。

ログのエクスポート

Cloud Logging では、集約シンクを使用した組織内のすべてのログのエクスポートや、ログ エクスポートを使用した Google Cloud プロジェクトの特定のログのエクスポートが可能です。ロギング フィルタを使用すると、特定のプロジェクトやクラウド リソースを包含または除外できます。 たとえば、すべての Compute Engine ログをエクスポートし、サイズの大きい Cloud Load Balancing ログを除外することなどが可能です。この方法により、すべてのログをエクスポートするか、または特定のログをエクスポートするかを柔軟に決定できます。

組織では、集約シンクを使用してすべてのプロジェクトから、または 1 つのフォルダからログをエクスポートできます。この機能により、組織のすべてのプロジェクトに対してログ エクスポート ポリシーを適用できます。組織レベルの IAM コントロールを使用すると、ユーザーのアクセス権をログ エクスポート設定の変更のみに限定できます。

集約シンクに代わる方法であるログ エクスポートは、組織全体ではなくプロジェクト単位で有効にされます。それ以外の点では、ログ エクスポートは集約シンクと同じです。

エクスポート方法

Cloud Logging からログをエクスポートするには、次の 3 つの方法があります。

  • ファイルへのエクスポート: Cloud Storage に保存された JSON ファイル
  • BigQuery へのエクスポート: BigQuery データセットに作成されたロギング テーブル
  • Pub/Sub へのエクスポート: Pub/Sub トピックに配信された JSON メッセージ

エクスポートされる内容

Cloud Logging で使用可能なログタイプについては、使用可能なログをご覧ください。

ロギングの形式

ログのタイプに応じて、3 種類のロギング ペイロード形式があります。

textPayload
コンテンツは 1 つの文字列として表現されます。この形式を使用するログの例として、Cloud Logging エージェント(syslog を含む)により報告されるログと Cloud SQL ログがあります。
protoPayload
コンテンツはプロトコル バッファとして表現され、ログ対象の特定のコンテンツに応じて異なります。管理アクティビティ監査ログとデータアクセス監査ログは、どちらもこの形式でエクスポートされます。これらのログに対応する BigQuery の JSON 構造とテーブル構造は、エクスポートされるエントリのタイプに応じて異なります。
jsonPayload
コンテンツは JSON オブジェクトとして表現され、ログに記録される特定のコンテンツに応じて異なります。この形式を使用するログの例として、Compute Engine や Compute Engine オートスケーラーのアクティビティ ログがあります。

ログ形式と、BigQuery 表構造および JSON エクスポート ファイル構造の対応については、スキーマとフィールドのドキュメントで詳しく説明します。BigQuery Export に対するクエリを記述する場合、またはファイルや Pub/Sub エクスポート JSON ファイルを解析する場合には、ロギング ペイロード形式を検討してください。ログの詳細な形式については、LogEntry の API 定義にリストされています。

ロギング エクスポートのシナリオ

このシリーズの記事では、ログをエクスポートするシナリオについて説明します。各シナリオでは、要件、設定、使用方法、およびエクスポートの共有方法を詳しく説明します。

次のステップ