ログビューアによるエクスポート

このページでは、GCP Console を使用してログエントリをエクスポートする方法について説明します。ログエントリは Stackdriver Logging APIgcloud logging コマンドライン ツールでもエクスポートできます。

Logging を使用したログのエクスポート経験があまりない場合は、ログのエクスポートの概要をご覧ください。要約すると、ログをエクスポートするには、ログフィルタエクスポート先を含む 1 つ以上のシンクを作成します。Stackdriver Logging は、新しいログエントリを受け取ると、各シンクと比較します。ログエントリがシンクのフィルタと一致する場合は、ログエントリのコピーがエクスポート先に書き込まれます。

エクスポートしたログを書式設定および整理する方法については、エクスポートしたログの使用をご覧ください。

始めに

  1. GCP Console の [Stackdriver Logging] > [ログのエクスポート] ページに移動します。

    [ログのエクスポート] に移動

  2. ページ上部で、既存の GCP プロジェクトを選択します。GCP プロジェクトのログのエクスポートの一覧が表示されます。

    次のスクリーンショットは、[ログのエクスポート] ページの例です。この例では、複数のログシンクがすでに構成されています。

[エクスポート] ページ

ログシンクをまだ 1 つも構成していない場合は、上記に示されているリストではなく、[ログシンクが構成されていません] というメッセージが表示されます。

始める前に

  • プロジェクト: ログビューアで表示可能なログを含む Google Cloud Platform プロジェクトが必要です。

    シンクを作成、削除、変更するためには、プロジェクトでオーナーまたは Logging / ログ構成書き込みのどちらかの IAM 役割も必要です。詳細については、権限と役割をご覧ください。

  • エクスポート先のサービス: ログをエクスポートするには、ログの書き込み先となる、Cloud StorageBigQueryCloud Pub/Sub などのサービスに登録する必要があります。

ログのエクスポート ユーザー インターフェース

[ログのエクスポート] インターフェースには、エクスポートのテーブルサマリが含まれています。それぞれの表の行には、ログのエクスポートの概要で説明されているシンク プロパティの一部に対応する情報が含まれています。

  • シンク名: 現在のプロジェクトのシンクの識別子です。
  • 出力先: エクスポートされたログエントリの宛先。
  • 書き込み ID: Logging がログエントリをエクスポート先に書き込むために使用するサービス アカウント。このサービス アカウントには、シンクのエクスポート先への書き込み権限が必要です。

表の各行の右端には、オーバーフロー メニューがあり、次のオプションを利用できます。

  • シンクを編集: シンクのパラメータを変更できる [エクスポートの編集] パネルを開きます。
  • シンクを削除: シンクを削除し、ログのエクスポートを停止します。
  • フィルタを表示: シンクのフィルタを表示します。[編集] をクリックすると、シンクのプロパティまたはフィルタを変更できます。

表の上にある検索フィルタ ボックスでは、テキスト検索またはシンク名エクスポート先書き込み ID などのシンク プロパティを使用してシンクをフィルタリングできます。たとえば、次のスクリーンショットは、[エクスポート先] に bigquery を指定した検索結果と、OR(デフォルトは AND)を使用して引数に他のシンク プロパティを連結するオプションを表示しています。

エクスポート フィルタ

さらに、いずれかの列名をクリックすると、昇順または降順でデータを並べ替えることができます。表の一番下では、表示する行数を選択することもできます。

シンクを作成する

エクスポート シンクを作成するには、[ログのエクスポート] ページの先頭にある [エクスポートを作成] ボタンをクリックします。このボタンは、[ログビューア] ページの先頭にもあります。

プロジェクトのエクスポートを作成する権限がアカウントにない場合、このボタンは無効になります。詳細については、上記の始める前にをご覧ください。

次のスクリーンショットは、いくつかのフィールドが入力された状態の [エクスポートの編集] パネルを示しています。

エクスポートの構成

シンクを作成するには、[エクスポートの編集] パネルに以下の情報を入力します。

  1. (フィルタ): 高度なログフィルタを入力します。フィルタの前後に引用符は必要なく、複数の行を使用できます。[エクスポートを作成] をクリックしたときに表示されるログエントリによって、最初のフィルタが決まります。

    フィルタを編集したら、フィルタ ボックスの下にある [フィルタを送信] を押します。該当するログエントリが表示されます。最新のログをフェッチするには、ページの上部にある最新のログに移動アイコンをクリックします。

    基本表示インターフェースを使用してログを選択するには、検索フィルタ ボックスの右側にある ▾ メニューをクリックします。

  2. シンク名: シンクに割り当てる ID を入力します。

  3. シンクサービス: エクスポート先のサービスとして [Cloud Storage]、[Cloud Pub/Sub]、[BigQuery]、または [独自のエクスポート先] を選択します。

    独自のエクスポート先は Cloud Storage、BigQuery、または Cloud Pub/Sub 内である必要がありますが、これを選択することで、別のプロジェクトのシンクにログを送信できます。

  4. シンクのエクスポート先:

    1. Cloud Storage: エクスポートされたログを受信する特定のバケットを選択または作成します。
    2. Cloud Pub/Sub: エクスポートされたログを受信する特定のトピックを選択または作成します。
    3. BigQuery: エクスポートされたログを受信する特定のデータセットを選択または作成します。
    4. 独自のエクスポート先: Cloud Storage、Cloud Pub/Sub、または BigQuery プロジェクトを文字列として追加します。プロジェクト名のフォーマットについては、シンクのプロパティをご覧ください。
  5. [シンクを更新] をクリックして、シンクを作成します。

    シンクの作成の一環として、Logging はシンクの書き込み ID にエクスポート先への書き込み権限を付与しようとします。ログを所有しているプロジェクト以外のプロジェクトのエクスポート先にエクスポートする場合は、新しいエクスポート先の管理者が権限を付与する必要があります。管理者にシンクの書き込み ID を送信してください。この ID は、[エクスポート] ページにシンクとともに表示されます。

シンクに一致する新しいログエントリのエクスポートが開始します。BigQuery や Cloud Pub/Sub に渡されるログエントリは、すぐにそれらのエクスポート先にストリーミングされます。Cloud Storage へのログエントリは、約 1 時間ごとにまとめて送信されます。詳細については、エクスポートしたログの使用をご覧ください。

ログをエクスポート先にエクスポートしようとしたときに Logging でエラーが発生した場合、エラーはプロジェクトのアクティビティ ストリームに表示されます。Google Cloud Platform Console でプロジェクトのホームページの上部にある [アクティビティ] を選択します。一般的なエラーを診断するには、トラブルシューティングをご覧ください。

シンクを更新する

シンクを更新するには、シンクの名前の右側にある [その他] メニューで [シンクを編集] を選択します。次のパラメータを変更できます。

  • エクスポート先
  • フィルタ

シンクのその他のパラメータを変更するには、projects.sinks.update API メソッドを使用します。

シンクを削除する

シンクを削除するには、[エクスポート] ページでシンクを選択してから、ページの先頭にある [削除] を押します。または、シンクの名前の右側にある [その他] メニューから [シンクを削除] を選択します。

エクスポート先の権限

ここでは、エクスポートされたログをシンクのエクスポート先に書き込むための権限を Logging に付与する方法について説明します。

シンクを作成すると、Logging によって一意の書き込み ID と呼ばれるシンクのサービス アカウントが新規に作成されます。このサービス アカウントは Stackdriver Logging によって所有、管理されているため、直接管理できません。シンクが削除されると、このサービス アカウントは削除されます。

エクスポート先では、このサービス アカウントにログエントリの書き込みを許可する必要があります。この権限を設定するには、次の手順に従います。

  1. GCP Console、gcloud logging コマンドライン インターフェース、または Logging API で新しいシンクを作成します。

  2. GCP Console でシンクを作成し、エクスポート先へのオーナー アクセス権がある場合は、Stackdriver Logging で必要な権限が設定されているはずです。設定が行われている場合は完了です。そうでない場合は続行します。

  3. 新しいシンクからシンクの書き込み ID(メールアドレス)を取得します。

    • GCP Console を使用している場合は、[エクスポート] ページのシンクのリストに書き込み ID が表示されます。
    • Logging API を使用している場合は、LogSink オブジェクトから書き込み ID を取得できます。
    • gcloud logging を使用している場合は、シンクを一覧表示すると書き込み ID が表示されます。
  4. エクスポート先へのオーナー アクセス権がある場合は、次の方法でエクスポート先にサービス アカウントを追加します。

    • Cloud Storage のエクスポート先の場合は、シンクの書き込み ID をバケットに追加し、ストレージのオブジェクト作成者の役割を付与します。
    • BigQuery のエクスポート先の場合は、シンクの書き込み ID をデータセットに追加し、BigQuery データ編集者の役割を付与します。
    • Cloud Pub/Sub の場合は、シンクの書き込み ID をトピックに追加し、Pub/Sub パブリッシャーの役割を付与します。

    これで、権限の付与は完了です。

  5. エクスポート先へのオーナー アクセス権がない場合は、書き込み ID のサービス アカウント名をその権限を持つ人に送信します。送信された担当者は、前のステップの指示に従って、書き込み ID をエクスポート先に追加する必要があります。

承認遅延

シンクは、ログエントリをエクスポートしようとしたときにエクスポート先への必要な権限がない場合、エラーを報告してログエントリをスキップします。これは、権限が付与されてシンクが新しいログエントリのエクスポートを開始するまで続きます。

シンクを作成してから、シンクの新しいサービス アカウントを使用してエクスポート先への書き込みを許可するまで、回避できない遅延が発生します。この遅延中のシンクからのエラー メッセージはすべて無視しても差し支えありません。

利点と制限事項

GCP Console には、Logging API を使用する場合に比べて以下の利点があります。

  • GCP Console では、すべてのシンクが 1 か所に表示されます。
  • GCP Console では、シンクを作成する前にシンクフィルタによって照合されたログエントリが表示されます。
  • GCP Console では、シンクのエクスポート先を作成して承認できます。

ただし、GCP Console を使用する場合は、プロジェクトでのみシンクを作成または表示できます。組織、フォルダ、請求先アカウントにシンクを作成するには、集約エクスポートをご覧ください。

トラブルシューティング

ここでは、発生する可能性のあるエラーと予期しない結果の一覧を示し、それらに対処する方法を説明します。

シンクのエラーは、シンクが作成されたプロジェクトまたは他のリソースのアクティビティ ストリームに表示されます。GCP Console のリソースのホームページにあるアクティビティ ストリームをご覧ください。

全般的な問題

問題 原因 解決方法
新しいログエントリはエクスポートされますが、以前のログエントリがエクスポートされません。 Logging はエクスポートのセットアップ後に受け取ったログエントリのみをエクスポートします。 entries.list API メソッドで以前のログエントリを取得し、出力先サービスの API を使用してそれらのログエントリをエクスポート出力先に書き込みます。取得できるログエントリは、Stackdriver Logging で有効期限に達していないもののみです。詳細については、ログ保持の制限をご覧ください。

Cloud Storage にエクスポートするとき発生するエラー

Logging を構成して Cloud Storage にログをエクスポートするときによく発生するエラーを次の表にまとめます。

エラー 原因 解決方法
バケット [YOUR_BUCKET] の権限では、ロググループで新しいオブジェクトを作成できません。 シンクの書き込み ID に、バケットに対する十分な権限がありません。 バケットに必要な権限を追加するか、別のバケットを使用するようにシンクを更新します。エクスポート先の権限をご覧ください。
[YOUR_BUCKET] という名前のバケットはありません。 バケット名にエラーがあるか、バケットが削除された可能性があります。 正しいバケット エクスポート先でシンクを更新してください。
シンクは正常に作成されましたが、エクスポート先に適切な権限を付与できませんでした。 バケットの作成時にバケットのアクセス制御モデルが [権限をバケットレベルで一律に設定する(バケット ポリシーのみ)] に設定されました。

(このエラー メッセージは、サービス アカウントの追加後も引き続き表示されます。)
バケットの作成中にアクセス制御モデルとして [オブジェクト レベルとバケットレベルの権限を設定] を選択してください。既存のバケットの場合、バケットの作成後 90 日以内に [権限] タブを使用してアクセス制御モデルを変更できます。

BigQuery にエクスポートするとき発生するエラー

Logging を構成して BigQuery にログをエクスポートするときによく発生するエラーを次の表に挙げます。

エラー 原因 解決方法
データセット [YOUR_DATASET] の権限では、ロググループで新しいテーブルを作成できません。 シンクの書き込み ID に、データセットに対する十分な権限がありません。 データセットに権限を追加します。エクスポート先の権限をご覧ください。
[YOUR_DATASET] という名前のデータセットはありません。 シンクのエクスポート先にエラーがあるか、誰かがデータセットを削除した可能性があります。 データセットを再作成するか、別のデータセットを使用するようにエクスポート シンクを更新します。
データセット [YOUR_DATASET] 内のテーブル [YOUR_TABLE] にストリーム出力されたログが、テーブル スキーマと一致しません。 エクスポートしようとしているログが現在のテーブルのスキーマに適合していません。 ログエントリがテーブル スキーマと一致することを確認します。一般的な問題としては、異なるデータ型のログエントリを送信することが考えられます。たとえば、ログエントリのフィールドの 1 つが整数値で、スキーマで対応する列が文字列型になっている場合があります。アクティビティ ストリームには、無効なログエントリに対するリンクが含まれています。エラーの原因を修正したら、現在のテーブルの名前を変更して、Logging で再度テーブルを作成します。
データセット [YOUR_DATASET] 内のテーブル [YOUR_TABLE] について、テーブルごとのストリーミング挿入の割り当てを超えています。 短時間に大量のログをエクスポートしようとしています。ログのストリーミングに適用される BigQuery のデフォルトの割り当て上限をご覧ください。 シンクが生成するログデータの量を減らします。一致するログエントリの数が少なくなるようにシンクのフィルタを更新したり、sample() 関数を使用します。
分割されたテーブル [YOUR_TABLE] にストリーミングされたログは、許可されている期間に含まれていません。 BigQuery では、許容された期間とかけ離れているログを受け入れません。 許可されている期間に含まれていないログをシンクでエクスポートすることはできません。これらのログを Cloud Storage にエクスポートすることで、代わりに BigQuery の読み込みジョブを使用できます。詳細については、BigQuery のドキュメントをご覧ください。
組織のポリシーで禁止されているため、データセット [YOUR_DATASET] にログをストリーミングできません。 選択したデータセットへの書き込みを禁止する組織のポリシーが存在します。組織のポリシーの詳細については、ドキュメントを参照してください。 エクスポート シンクを変更して、ポリシーに準拠したデータセットを使用します。

Cloud Pub/Sub にログをエクスポートするとき発生するエラー

Logging を構成して Cloud Pub/Sub にログをエクスポートするときによく発生するエラーを次の表に挙げます。

エラー 原因 解決方法
[PROJECT] で [ACCOUNT] に編集アクセス権がないため、[TOPIC] に情報を公開できません。 シンクの書き込み ID に、トピックに対する十分な権限がありません。 プロジェクトに必要な権限を追加します。エクスポート先の権限をご覧ください。
トピック [TOPIC] は存在しません。 エクスポートしたログを受け取るように構成したトピックを削除してしまった可能性があります。 同じ名前のトピックを作り直すか、エクスポートの構成を変更して別のトピックを使います。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

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

ご不明な点がありましたら、Google のサポートページをご覧ください。