ログのエクスポートの概要

Stackdriver Logging の外部でログの一部またはすべてのコピーをエクスポートできます。

エクスポートするには、エクスポートするログエントリを選択するフィルタを作成し、Cloud Storage、BigQuery、Cloud Pub/Sub のエクスポート先を選択する必要があります。フィルタとエクスポート先はシンクと呼ばれるオブジェクトに保持されます。シンクは、プロジェクト、組織、フォルダ、請求先アカウントで作成できます。

Stackdriver Logging ではログをエクスポートするための料金や制限はありませんが、エクスポート先ではログデータの保存や送信に料金がかかります。

ログをエクスポートする理由

次のような理由でログのエクスポートが必要な場合があります。

  • 長期間ログを保存するため。Stackdriver Logging のログ保存期間は通常、年単位ではなく数週間です。詳しくは、割り当てポリシーをご覧ください。
  • ログに対してビッグデータ分析ツールを使用するため。
  • 他のアプリケーション、他のレポジトリ、またはサードパーティにログをストリーミングするため。

シンクのプロパティと用語

シンクには次のプロパティがあります。

  • シンク識別子: シンクの名前。例: "my-vm-error-sink"

  • 親リソース: シンクを作成するリソース。親はほとんどの場合プロジェクトですが、次のいずれかになります。

    "projects/[PROJECT_ID]"
    "folders/[FOLDER_ID]"
    "billingAccounts/[BILLINGACCOUNT_ID]"
    "organizations/ORGANIZATION_ID]"
    

    シンクは、その親リソースに属するログのみをエクスポートできます。このルールの例外については、次の集約エクスポート プロパティをご覧ください。

    シンクの完全なリソース名には、その親リソースとシンク識別子が含まれます。次に例を示します。

    "projects/[PROJECT_ID]/sinks/[SINK_ID]"
    
  • ログフィルタ: このシンクからエクスポートするログエントリを選択します。詳しくは、高度なログフィルタをご覧ください。たとえば、次のフィルタは、指定した Google Compute Engine VM インスタンスから重大度が ERROR 以上のすべてのログエントリを選択します。

    resource.type = gce_instance AND
       resource.labels.instance_id = "[INSTANCE_ID]" AND
       severity >= ERROR
    
  • エクスポート先: フィルタに一致するログエントリを送信する単一の場所。サポートされているエクスポート先は 3 つあります。

    • Cloud Storage バケットは、安価で長期的なストレージを提供します。

      storage.googleapis.com/[BUCKET_ID]
      
    • BigQuery データセットは、ビッグデータ分析機能を提供します。

      bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET_ID]
      
    • Cloud Pub/Sub トピックは、ログエントリを他のアプリケーションまたはレポジトリにストリーミングします。

      pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]
      

    ログはどのプロジェクト内のエクスポート先にもエクスポートできます。ただし、エクスポート先がシンクのサービス アカウントをライターとして承認する場合に限ります。

  • ライター ID: サービス アカウント名。エクスポート先のオーナーは、このサービス アカウントにエクスポート先への書き込み権限を付与する必要があります。ログのエクスポート時に、Stackdriver Logging はこの ID を承認に使用します。セキュリティを高めるために、新しいシンクは一意のサービス アカウントを取得します。

    [GENERATED_ID_1]@[GENERATED_ID_2].iam.gserviceaccount.com
    

    詳しくは、エクスポート先の権限をご覧ください。

  • 集約エクスポートincludeChildren プロパティは集約エクスポートで説明されています。これは組織で作成されたシンクにのみ関連します。

  • 開始時間終了時間(サポート終了)。startTime プロパティと endTime プロパティは、v1 API から v2 API への移行にのみ関連していました。

  • 出力形式(サポート終了)。outputVersion プロパティは、v1 API から v2 API への移行にのみ関連していました。

シンクについて詳しくは、LogSink タイプ、projects.sinks.create API メソッド、API でのログのエクスポートをご覧ください。

シンクの仕組み

ログエントリがプロジェクト、フォルダ、請求先アカウント、または組織に到着するたびに、Stackdriver Logging はログエントリをそのリソース内のシンクと比較します。フィルタがログエントリと一致する各シンクは、ログエントリのコピーをシンクのエクスポート先に書き込みます。

新しいログエントリに対してのみエクスポートが行われるため、シンクが作成される前に Stackdriver Logging が受信したログエントリはエクスポートできません。

アクセス制御

シンクを作成または変更するには、シンクの親リソースに IAM 役割のオーナーまたは Logging / ログ設定ライターが必要です。既存のシンクを表示するには、シンクの親リソースに IAM 役割の閲覧者または Logging / ログ閲覧者が必要です。詳細については、アクセス制御をご覧ください。

ログをエクスポート先にエクスポートするには、シンクのライター サービス アカウントがエクスポート先への書き込みを許可されている必要があります。ライター ID について詳しくは、前のセクションシンクのプロパティをご覧ください。

エクスポートされたログを不正アクセスから保護するには、エクスポート先のアクセス制御機能を使用する必要があります。シンクは、プライベート データアクセス監査ログを含む任意のログエントリをエクスポートできます。

トラブルシューティング

エクスポートの一般的な問題とその対処方法は次のとおりです。

  • エクスポート先からのエラー: シンク内のエクスポート先の指定を確認します。projects.sinks.get を使用して、シンクのライター ID を検索し、ID がエクスポート先への書き込みを許可されていることを確認します。 エラーが修正されると、シンクはログのエクスポートを開始します。

  • ログがエクスポートされない: 考えられる理由は次のとおりです。

    • シンクを作成してから、一致するログエントリが受信されていません。 新しいログエントリのみがエクスポートされます。
    • フィルタが正しくありません。フィルタのスペルが間違っていると、ログエントリが一致しない可能性があります。ログビューアの高度なフィルタ インターフェースで同じフィルタを試して、いずれかのログエントリと一致するかどうかを確認してください。
    • エクスポート先にエクスポートされたログが表示されるまで時間がかかります。これは特に Cloud Storage のエクスポート先に当てはまります。エクスポートしたログの可用性をご覧ください。

V1 シンクの移行

このページの前述の情報は、Stackdriver Logging API v2 で提供されるログ エクスポートの概念について説明しています。そのバージョンには新しいシンク機能があり、一部の v1 API シンク機能のサポートがなくなりました。また、エクスポートされたログエントリの出力形式も異なります。v2 へのシンクの移行について詳しくは、Stackdriver Logging API v2 への移行をご覧ください。

次のステップ

ログをエクスポートする方法については、以下をご覧ください。

エクスポートしたログエントリの形式や、エクスポートしたログをエクスポート先で整理する方法については、エクスポートしたログの使用をご覧ください。

フィードバックを送信...