ログをエクスポートする

新しいログエントリのコピーを Stackdriver Logging から Google Cloud Storage バケット、Google BigQuery データセット、Google Cloud Pub/Sub トピック(または、これらの任意の組み合わせ)にエクスポートできます。

このガイドでは、ログビューアの [Logs Export] パネルでエクスポートをセットアップする方法を説明します。エクスポートのセットアップにコマンドライン SDK を使う場合は SDK でログをエクスポートするを、Logging API を使う場合は API でログをエクスポートすると、projects.sinks のメソッドを参照してください。ログのエクスポートの仕組みや、エクスポートしたログを見つけて使うまでの手順は、エクスポートしたログを参照してください。

始める前に

  • Cloud Platform Console でログビューアに移動し、エクスポートしたいログを見つけます。Stackdriver Logging は、エクスポートのセットアップ後に受け取ったログエントリのみをエクスポートします。

    Cloud Platform Console に移動

  • ログのエクスポートを行うプロジェクトでオーナー役割かログ設定書き込み役割が与えられていなければなりません。Cloud Platform Console の [IAM と管理] ページで、これらの権限を表示して変更できます。詳細は、Stackdriver Logging アクセス制御ガイドを参照してください。

  • ログのエクスポート先となるサービスに登録します。

    • ログのエクスポート先が Cloud Storage の場合は、Cloud Storage に登録し、課金を有効にします。
    • ログのエクスポート先が BigQuery の場合は、BigQuery に登録し、課金を有効にします。
    • ログのエクスポート先が Cloud Pub/Sub の場合は、Cloud Pub/Sub に登録し、課金を有効にします。

エクスポート出力先を作成する

ログビューア の Logs Export パネルを使う場合は、Cloud Platform Console でログのエクスポートをセットアップする際にエクスポート出力先(バケット、データセット、およびトピック)を作成できます。

コマンドライン インターフェースまたは API を使う場合は、独自の出力先を作成してそこに適切な権限を設定してからログをエクスポートする必要があります。詳細は、エクスポートしたログを書き込む権限を参照してください。

ログシンクを設定する

Logs Export パネルからログのエクスポートをセットアップする手順は次のとおりです。

  1. ログビューア に移動し、プロジェクトを選択します。

  2. 左側のナビゲーション パネルで [エクスポート] を選択します。次のパネルが表示されます。

    Configure export

  3. エクスポートするログを選択するには、以下の手順に従います。

    1. [サービスを選択] メニューで、ログサービスを選択します。どれを選択するかは、エクスポートしたいログによります。たとえば、App Engine Request Log をエクスポートする場合は、App Engine を選択します。このメニューには有効にしたサービスだけが表示されます。

    2. 選択したログサービスからすべてのログをエクスポートする場合は、[すべてのログ] をオンにし、「エクスポート出力先を選択する」ステップに進みます。

    3. ログサービスから一部のログのみをエクスポートする場合は、[すべてのログ] をオフにします。大きなプラス記号 [+] を含むボックスが表示されます。

    4. エクスポートしたいログごとに、このプラス記号 [+] を押し、ドロップダウン メニューからログソースを選択します。このメニューにはアクセスしたことがあるログだけが表示されます。

  4. エクスポート出力先を選択する。エクスポート出力先の候補となる 3 つのサービス(BigQuery、Cloud Storage、Cloud Pub/Sub)ごとに、当該サービスのドロップダウン メニューから出力先を選択します。

    1. 選択したログを出力先サービスにエクスポートしたくない場合は、[<サービス> にエクスポートしない] を選択します。

    2. 選択したログの出力先(データセット、バケット、またはトピック)を新規に作成する場合は、[新しい <出力先> を追加...] を選択します。

    3. 既存の出力先を選択して、選択したログを当該データセット、バケット、またはトピックにエクスポートします。

    4. エクスポートのセットアップがすべて完了したら [保存] を選択します。.

  5. さらに別のログサービスでエクスポートする。別のログサービスからログをエクスポートする場合は、上記の「エクスポートするログを選択する」以降のステップを繰り返します。あるサービスに対して新しいエクスポートの設定を行うと、そのサービスの以前のエクスポートの設定はすべて無効になり、新しい設定が上書きされます。

  6. ログのエクスポートを停止する。ログサービスからのログのエクスポートを停止するには、エクスポート出力先のサービスごとにサービスを選択し、[すべてのログ] をオンにし、前と反対に今度は [<サービス> にエクスポートしない] を選択します。

Stackdriver Logging は、設定に従ってログエントリのエクスポートを直ちに開始します。詳細は、エクスポートしたログの利用を参照してください。

エクスポートするログに関連して Cloud Storage、BigQuery、または Cloud Pub/Sub からエラー メッセージが表示された場合は、トラブルシューティングを参照してください。

エクスポートしたログを書き込む権限を設定する

ログをエクスポートするには次の 2 つの権限が必要です。

  • ログのエクスポートをセットアップする権限(ユーザーまたはユーザーのソフトウェアの権限)
  • 選択した出力先にログを書き込む権限(Stackdriver Logging の権限)

ログのエクスポートをセットアップするには、ログのエクスポートを行うプロジェクトでユーザーまたはユーザーのソフトウェアに次のどちらかの役割が与えられていなければなりません。

  • オーナー
  • ログ設定書き込み

権限は、Cloud Platform Console の [IAM と管理] ページで表示して変更できます。詳細は、Stackdriver Logging アクセス制御ガイドを参照してください。

Stackdriver Logging にはエクスポートしたログを出力先(Cloud Storage バケット、BigQuery データセット、または Cloud Pub/Sub トピック)に書き込む権限も必要です。Cloud Platform Console はユーザーに代わって以下の権限を設定します。この設定は ログビューア の Logs Export パネルからエクスポートをセットアップするときに行われます。

  • Cloud Storage では、ユーザーのバケットに対するオーナー権限がグループ cloud-logs@google.com に与えられます。
  • BigQuery では、ユーザーのデータセットに対する編集可能権限がグループ cloud-logs@google.com に与えられます。
  • Cloud Pub/Sub では、ユーザーのプロジェクトに対する編集者権限がサービス アカウント cloud-logs@system.gserviceaccount.com に与えられます。

Logs Export パネルの代わりに Logging API またはコマンドライン インターフェースを使ってエクスポートをセットアップする場合は、適切な権限を持つ出力先を最初に作成してからログのエクスポートをセットアップする必要があります。手順は、このセクションで説明します。

これらの出力先へのエクスポートを停止しても、そこで設定した権限は、どのように付与したかに関係なく、明示的に削除しない限りそのまま残ります。

Cloud Storage の権限を設定する

ログのエクスポート先となるバケットごとに Stackdriver Logging のオーナー権限を設定してください。

  1. Cloud Platform Console で Cloud Storage ブラウザページに移動します([ストレージ] > [ストレージ] > [ブラウザ])。

  2. ストレージ バケットを見つけ、そのバケットの [その他のメニュー] から [バケット編集権限] を選択します。

ストレージ ブラウザ

  1. 必要に応じて [+ アイテムを追加] をクリックし、cloud-logs@google.com をプロジェクトのグループおよびオーナーとして追加します。

オーナーとしてクラウドログを追加する

  1. [保存] をクリックします。

詳細は、Cloud Storage アクセス制御を参照してください。

BigQuery の権限を設定する

ログのエクスポート先となる BigQuery データセットごとに Stackdriver Logging の編集者権限を設定してください。

  1. Cloud Platform Console で BigQuery ウェブ UI に移動します([ビッグデータ] > [BigQuery])。

  2. データセットの名前の右にあるドロップダウン リンクで、[共有データセット] を選択します。

    共有データセット

  3. [ユーザーを追加] セクションで、以下の操作を行います。

    1. ダイアログの左にあるドロップダウン リストで、[メールでグループ化] を選択します。
    2. テキスト ボックスに「cloud-logs@google.com」と入力します。
    3. ダイアログの右にあるドロップダウン リストで、[編集可能] を選択します。
    4. [メールで通知] チェックボックスをオフにします。ダイアログは次のようになります。

      クラウドログを追加する

  4. [追加] をクリックします。

  5. [変更を保存] をクリックします。

詳細は、BigQuery アクセス制御を参照してください。

Cloud Pub/Sub の権限を設定する

ログのエクスポート先となる Pub/Sub トピックに Stackdriver Logging の Pub/Sub パブリッシャー役割を設定してください。Stackdriver Logging の Pub/Sub パブリッシャー役割をプロジェクトで設定した場合は、プロジェクトの任意のトピックにログをエクスポートできます。Pub/Sub パブリッシャーに分類される任意の役割(編集者など)を代用してもかまいません。

プロジェクト レベルで権限を付与する手順は次のとおりです。

  1. Cloud Platform Console で、プロジェクトの権限ページに移動します。

  2. アカウント cloud-logs@system.gserviceaccount.com が既にリストされている場合は、役割 Pub/Sub パブリッシャー(または同等の権限を持つその他の役割)がそれに設定されていることを確認します。必要に応じて役割を追加します。

  3. アカウントがリストされていない場合は、ページ先頭にある [メンバーを追加] をクリックします。[メンバーの追加] ダイアログで次のように設定します。

    1. [メンバー] ボックスに「cloud-logs@system.gserviceaccount.com」と入力します。
    2. [役割を選択] メニューで Pub/Sub > パブリッシャーを選択します。あるいは、同等の権限を持つ別の役割を代用します。
    3. [追加] をクリックします。

トピックレベルで権限を付与する手順は次のとおりです。

  1. Cloud Platform Console で、プロジェクトの Pub/Sub トピックリストに移動します。
  2. トピックを新規に作成するか、ログのエクスポート用の既存のトピックを選択します。
  3. [権限] を選択します。
  4. cloud-logs@system.gserviceaccount.com」と入力します。
  5. [役割を選択] メニューで、Pub/Sub パブリッシャー(または同等の権限を持つその他の役割)を選択します。
  6. [追加] をクリックします。

エクスポートしたログを使用する

エクスポートしたログファイル、テーブル、トピック、およびログエントリのフォーマットに関する詳しい説明は、エクスポートしたログを参照してください。

トラブルシューティング

このセクションでは、発生する可能性のあるエクスポート エラーとエラーに対処する方法を説明します。

全般的な問題

問題 原因 解決方法
新しいログエントリはエクスポートされますが、以前のログエントリがエクスポートされません。 Stackdriver Logging はエクスポートのセットアップ後に収集されたログエントリだけをエクスポートします。 entries.list API メソッドで以前のログエントリを取得し、出力先サービスの API を使用してそれらのログエントリをエクスポート出力先に書き込みます。

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

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

エラー 原因 解決方法
バケット <your_bucket> の権限のために、このロググループは新規のオブジェクトを作成できません。 当該バケットにオーナーとしてアクセスする権限がグループ cloud-logs@google.com にありません。ログビューア からログのエクスポートをセットアップすればアクセス権は自動的に付与されますが、コマンドライン インターフェースまたは Logging API を使用した場合は付与されません。また、プロジェクトのオーナーによって権限が取り消された可能性もあります。 当該バケットに必要な権限を追加するか、ログのエクスポートのセットアップをやり直して別のバケットを使用します。Cloud Storage へのアクセス権を設定するを参照してください。
名前 <your_bucket> で識別されるバケットが存在しません。 エクスポートしたログを受け取るようにセットアップしたバケットを削除してしまった可能性があります。 同じ名前のバケットを作り直すか、Stackdriver Logging をセットアップして別のバケットをログのエクスポート用に使います。
バケット <your_bucket> がプロジェクト <your_project> に存在しません。 指定したバケットが、ログのエクスポートを行うプロジェクトに属していません。 バケットを削除して本来のプロジェクトで作り直すか、エクスポートの設定を変更して別のバケットを使います。

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

Stackdriver Logging をセットアップして BigQuery にログをエクスポートするときよく発生するエラーを次の表にまとめます。

エラー 原因 解決方法
データセット <your_dataset> の権限のために、このロググループは新規のテーブルを作成できません。 BigQuery データセットにログを書き込むためには、当該データセットでグループ cloud-logs@google.com の書き込み役割を設定する必要があります。BigQuery を使うようにログのエクスポートをセットアップするとき、アクセス権は、通常、自動的に付与されます。この権限を削除すると、Stackdriver Logging は当該バケットにログを書き込めなくなります。 データセットに権限を追加します。エクスポートしたログへのアクセス権を手動で設定するを参照してください。
名前 <your_dataset> で識別されるデータセットが存在しません。 エクスポートしたログを受け取るようにセットアップしたデータセットを削除してしまった可能性があります。 同じ名前のデータセットを作り直すか、エクスポートの設定を変更して別のデータセットを使います。
データセット <your_dataset> 内のテーブル <your_table> にストリーミングされるログがテーブル スキーマと一致しません。 エクスポートしようとしているログが現在のテーブル スキーマに適合していません。 ログエントリがテーブルと一致することを確認します。テーブルを削除するか名前を変更してテーブルが Stackdriver Logging によって再び作成されるようにしてもかまいません。
データセット <your_dataset> 内のテーブル <your_table> でテーブルごとのストリーミング挿入量が割り当て上限を超えました。 短時間に大量のログデータをエクスポートしようとしています。BigQuery のデフォルトの割り当て上限を参照してください。これがログのストリーミングに適用されます。 割り当て上限を超えた場合は、営業担当に連絡してテーブルごとまたはプロジェクトごとの割り当て上限を増やしてください。

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

Stackdriver Logging をセットアップして Cloud Pub/Sub にログをエクスポートするときよく発生するエラーを次の表にまとめます。

エラー 原因 解決方法
<project><account> に編集アクセス権がないため、<topic> に情報を公開できません。 指定したアカウントが、プロジェクトで編集可能権限を持っていません。 プロジェクトに必要な権限を追加します。Cloud Pub/Sub へのアクセス権を設定するを参照してください。
トピック <topic> が存在しません。 エクスポートしたログを受け取るようにセットアップしたトピックを削除してしまった可能性があります。 同じ名前のトピックを作り直すか、エクスポートの設定を変更して別のトピックを使います。

次のステップ

  • ログのエクスポートの仕組みや、エクスポートしたログを整理する方法を知りたければ、エクスポートしたログを参照してください。
  • コマンドライン SDK を使用してログをエクスポートする場合は、SDK でログをエクスポートするを参照してください。
  • Logging API を使用してログをエクスポートする場合は、API でログをエクスポートすると、projects.sinks のメソッドを参照してください。
このページは役立ちましたか?評価をお願いいたします。

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

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