ログの表示

このガイドでは、ログビューアでログの検索とログエントリの表示を行う方法を説明します。

  • ログエントリをエクスポートする方法については、ログのエクスポートをご覧ください。
  • Stackdriver Logging API を使用してログエントリを読み取る方法については、entries.list をご覧ください。
  • Cloud SDK を使用してログエントリを読み取る方法については、ログエントリを読み取るをご覧ください。

始める前に

Amazon Web Services(AWS)から Stackdriver Logging にログを送信する場合を除き、Stackdriver Logging の使用時にワークスペースは必要ありません。

Stackdriver Logging では、単一の Google Cloud Platform プロジェクトのログが表示されます。ワークスペースを使用する場合、複数のモニタリング対象プロジェクトにまたがったログの結合は行われません。ログを表示するプロジェクトを選択する必要があります。

ワークスペースと AWS を使用する場合は、AWS コネクタ プロジェクトを選択して AWS のログを表示します。

はじめに

  1. GCP Console の [Stackdriver Logging] > [ログ](ログビューア)ページに移動します。

    ログビューア ページに移動

  2. ページの上部で既存の GCP プロジェクトを選択するか、新しいプロジェクトを作成します。

  3. プルダウン メニューを使用して、ログを表示するリソースを選択します。

ログが表示されない場合は、以下のトラブルシューティングをご覧ください。

ログビューアのフィルタ インターフェース

ログビューアには、2 つのフィルタリング インターフェースがあります。

  • 基本フィルタ インターフェースではメニューからログを選択でき、簡単な検索機能を使用できます。
  • 高度なフィルタ インターフェースでは複数のログのログエントリを表示でき、より強力な検索機能を使用できます。

インターフェースを切り替えるには、インターフェースの検索フィルタ ボックスの右端にあるプルダウン矢印(▾)を使用します。

次のスクリーンショットは、ログビューアの基本フィルタ インターフェースを示しています。このスクリーンショットには、App Engine アプリケーションのログエントリが表示されています。

ログビューア

上のスクリーンショットに赤い数字で示されている、基本フィルタ インターフェースの主な構成要素は次のとおりです。一部の要素は高度なフィルタ インターフェースにも表示されます。

  1. ウィンドウタブでは、[ログ](ログビューア ページ)をそのまま表示することも、他の Stackdriver Logging 機能、具体的には、[指標](ログベースの指標を参照)、[エクスポート](ログビューアによるエクスポートを参照)、[ログの取り込み](ログの除外を参照)を選択することもできます。
  2. 基本フィルタ インターフェースの検索フィルタ ボックスでは、ラベルまたはテキスト検索を使用してログエントリをフィルタリングできます。基本フィルタが表示されていますが、右端のプルダウン矢印(▾)を使用すると、高度なフィルタ インターフェースに切り替えられます。自分のフィルタへのリンクも表示できます。
  3. 基本セレクタ メニューでは、表示するリソース、ログ、重大度レベルを選択できます。
  4. 期間セレクタのプルダウン メニューでは、特定の日時でログをフィルタリングできます。
  5. ページの先頭にあるストリーミング セレクタでは、新しいログエントリを受信時に表示するかどうかを制御できます。
  6. ログエントリ テーブルには、現在のフィルタとカスタム フィールドに応じて利用可能なログエントリが含まれています。
  7. 各ログエントリの前にある展開矢印(▸)を使用すると、エントリの全内容を見ることができます。詳細については、ログエントリの展開をご覧ください。
  8. [表示設定] メニュー: 右端にあり、その他の表示オプションがあります。
  9. [ログをダウンロード] メニュー: 右端にあり、一連のログエントリをダウンロードできます。詳細については、ログエントリのダウンロードをご覧ください。
  10. 各ログエントリに表示されるその他アイコン(⋮)を使用すると、ログエントリを固定する、リソース コンテキスト内でログエントリを表示する、ログエントリの URL をクリップボードにコピーするといった操作を行えます。

ログビューアでは、カーソル位置に合わせて関連するログエントリがハイライト表示され、その他アイコン(⋮)の横にピンアイコン(📌)が表示されます。

ログのスクロールとストリーミング

最初にログビューアを開いた時点では、最新のログエントリから順に表示されます。ログエントリをスクロールすると、ログビューアに追加のエントリが表示されます。ログの上下に表示される黄色いバーは、他のログエントリが使用可能かどうかを示します。

画面の先頭にあるアイコンを使用して、ログを更新します。

  • 更新アイコン(refresh)をクリックして最新のログを取得し、画面をスクロールします。
  • 再生アイコン(play_arrow)をクリックして最新ログをストリーミングします。ログエントリを選択するか、ログ画面をスクロールすると、ストリーミングが停止します。
  • 一時停止アイコン(pause)をクリックしてストリーミングを停止します。

時間までスクロール

検索フィルタ ボックスの下にある期間セレクタ メニューを使用すると、ログエントリを時間と日付でフィルタリングできます。

期間セレクタ

デフォルトの選択は [過去 1 時間] です。プルダウン メニューを使用すると、他の期間の選択や期間の定義が可能です。

  • [時間を選択] を選択し、ログを特定の日時でフィルタリングします。
  • [カスタム] を選択してカスタムの期間またはタイムゾーンを指定します。

現在のログエントリを表示するには、[現在の位置に移動] をクリックします。

どれを選択した場合も、ログビューアの画面が更新されます。更新されたら、表示されたログエントリをスクロールし、内容を確認できます。

最後に受信したログエントリに対応するように日時をリセットするには、更新アイコンか再生アイコンをクリックします。

タイムゾーンを変更する

ログエントリのタイムゾーンを選択できます。

  1. [過去 1 時間] プルダウン メニューで [カスタム] を選択します。
  2. 新しいメニューのいずれかで展開矢印(▾)をクリックしてプルダウンのカレンダーを開きます。
  3. [タイムゾーン] ペインで、該当の国とタイムゾーンを選択します。

選択に応じてログビューアの画面が更新され、各ログエントリのタイムゾーンも更新されます。

タイムゾーンのカスタマイズ

ログエントリの展開

ログエントリ テーブルには、デフォルトで、各ログエントリの概要行が表示されます。

ログエントリの概要行

ログエントリの概要行に、ハイライト表示されたフィールドが含まれている場合があります。たとえば、カスタム フィールドがハイライト表示されます。

概要行に含まれるフィールドは、ログエントリのフィールドのサブセットとして選択されます。一部のフィールドは、次の基準を 1 つ以上満たす場合にデフォルトで表示されます。

  • ログエントリに、よく知られているタイプ(たとえば、App Engine リクエストログなど)が含まれている。
  • ログエントリに httpRequest フィールドが含まれている。
  • ログエントリに、message という名前のフィールドを含むペイロードがある。

1 つのログエントリの詳細を表示するには、概要行の前にある展開矢印(▸)をクリックします。現在のフィルタで表示されるすべてのログエントリについて、構造化ビューで詳細を表示するには、右端の [表示設定] メニューをクリックし、[すべてを展開] を選択します。

[表示設定] メニュー

[すべて折りたたむ] を選択すると、展開されたログエントリの詳細をすべて折りたためます。

ログエントリの概要行を展開すると、ログビューアに構造化(JSON)表現が表示されます。

構造化リクエストログ エントリ

ログエントリのフィールドの詳細については、LogEntry タイプをご覧ください。

カスタム フィールドの追加

カスタム フィールドは、概要行に含めるように指定できるログエントリ内のフィールドです。このフィールドがログエントリに表示されている場合は、必ずデータが入力され、青色でハイライト表示されています。

概要行のカスタム フィールド

ログエントリ テーブルの概要行にカスタム フィールドを追加するには、2 つの方法があります。

  • 展開されたログエントリで、JSON 表現内のフィールドをクリックします。結果のパネルで、[概要行にフィールドを追加] を選択します。

概要行にフィールドを追加

  • ログビューアの右上隅にある [表示設定] メニューから [カスタム フィールドの追加] を選択します(このプロジェクトにすでにカスタム フィールドがある場合、このオプションは [カスタム フィールドを変更] になります)。結果のパネルで、目的の JSON キーを追加して [保存] をクリックします。複数のキーを追加する場合は、これらのキーをカンマで区切ります。概要行のカスタム フィールドの表示順序を変更するには、このパネルのテキストの順序を変更し、[保存] をクリックします。

概要行に JSON フィールドを追加

ログエントリ テーブルの概要行からカスタム フィールドを削除するには、2 つの方法があります。

  • 削除するカスタム フィールドがある概要行から、そのフィールドをクリックして、[概要行からフィールドを削除] を選択します。
  • ログビューアの右上隅にある [表示設定] メニューから [カスタム フィールドを変更] を選択します。結果のパネルで、対象の JSON キーを削除して [保存] をクリックします。

カスタム フィールドは、現在の URL に追加され、その URL を使用しているか、同じブラウザ セッション内にいる限り、そのまま残ります。これらは、グローバルに設定することはできず、ユーザーごとに保存することも、GCP プロジェクトごとに保存することもできません。

デフォルトのフィールドはログエントリ テーブルから削除できません。

ログエントリを固定する

調べたいログエントリを特定していて、その付近のエントリも調査する場合は、そのログエントリをピンで固定できます。ログエントリを固定した後でフィルタを変更すると、固定されたエントリ付近に検索結果が自動的に配置されます。エントリを固定することで、定義したフィルタのコンテキストに沿ってログエントリを調査できるようになります。ログを固定すると背景が変わり、ピンが表示されます。

固定されたログエントリ

ログエントリを固定するには、そのピンをクリックするか、その他アイコン(⋮)をクリックして [このログエントリを固定] を選択します。

ログエントリを固定すると、固定した本人だけにピンが表示されます。同じログエントリを表示している他のユーザーにはそのピンは表示されず、画面表示が変更されることもありません。

ログエントリを固定してもフィルタ インターフェースやフィルタ設定は変更されず、表示された内容も更新されません。フィルタ設定の内容や、ログビューア画面の更新のタイミングはユーザーが決定します。フィルタ設定の変更や画面の更新は必要に応じて何度でも行うことができ、固定しているログエントリには影響しません。

ログエントリを固定すると、現在有効になっているストリーミングは停止されます。

ログエントリを固定しているピンは、次の方法で移動または削除できます。

  • ピンを別のログエントリに移動するには、新しいログエントリでそのピンアイコンをクリックするか、その他アイコン(⋮)をクリックして [ピンをこのログエントリまで移動] を選択します。

  • ログエントリのピンを削除するには、そのピンアイコンをクリックするか、その他アイコン(⋮)をクリックして [このログエントリの固定を解除] を選択します。

ログエントリが固定されているときにストリーミングを有効にすると、ログビューアによってピンが削除されます。

類似したログを表示する

展開されたログエントリ ビューの個別のフィールドの値をクリックしてから、同じ値のすべてのログエントリを表示または非表示にできます。

一致エントリを表示

この操作を行うと、ログビューアが高度なフィルタ インターフェースに切り替わります。検索条件を変更するには、フィルタを編集して [フィルタを送信] をクリックします。詳細については、高度なフィルタ インターフェースをご覧ください。

また、App Engine リクエストログ エントリを関連付けて、ネスト構造で表示することもできます。詳しくは、関連付けられたリクエストログ エントリの表示をご覧のうえ、ランタイム言語を選択してください。

レイテンシの詳細を表示する

App Engine リクエストログ新たに Stackdriver Trace へのリンクが設けられ、ログエントリのレイテンシの詳細を簡単に表示できるようになりました。

ログエントリのレイテンシ関連オプションのメニューを表示するには、protoPayload.latency フィールドを特定します。

protoPayload.latency を表示

レイテンシの値をクリックします。

レイテンシ オプションを表示

メニューの最初の 2 つのオプションは、表示されるログエントリを、レイテンシがより高いまたは低いのものに限定します。メニューの最後のオプションは、ログエントリを、Stackdriver Trace で表示可能なトレースの詳細を含むものに限定します。具体的には、最後のオプションはログエントリをトレースの詳細表示が有効なものに限定します。

Stackdriver Trace のレイテンシの詳細を表示する

特定の App Engine リクエストログでは、[トレースの詳細表示] オプションが有効になっています。有効になっている場合は、このオプションをクリックして Stackdriver Trace を開き、ログエントリのレイテンシの詳細を表示します。

トレース タイムラインを表示

リソース コンテキスト内で表示

調べたいログエントリを特定していて、同じリソースタイプに関連付けられた他のログエントリを確認するには、行の右端にあるその他アイコン(⋮)をクリックし、[リソース コンテキスト内で表示] を選択します。

コンテキストを表示

この操作を行うと、ログビューアで以下が実施されます。

  1. ログエントリが固定されます
  2. 高度なフィルタ インターフェースに切り替わり、フィルタの内容がリソースタイプに関するフィルタに置き換えられます。
  3. 画面が更新されます。固定されたログエントリが画面の下部に表示されます。

コンテキスト内で表示

ログエントリを共有する

ログエントリを共有するには、その他アイコン(⋮)をクリックして [ログエントリのリンクをクリップボードにコピー] を選択します。この操作により、ログエントリの一意の URL が生成され、その URL がクリップボードにコピーされます。

ログを選択する

表示したいログを見つけるには、メニューと検索フィルタ ボックスを使用します。

  • 必要なログのリソースタイプとインスタンスを選択します。リソースタイプのすべてのインスタンスを表示することも、特定のインスタンスを選択することもできます。上のスクリーンショットでは、[GCE VM インスタンス](すべてのインスタンス)が選択されています。リソースタイプの一覧については、モニタリング対象リソースのリストをご覧ください。

  • 2 番目のメニューから必要なログ名を選択するか、[すべてのログ] を選択します。メニューには、選択したリソース インスタンス別に使用中のログが表示されます。

  • 3 番目のメニューで、最も低い重大度レベルを選択します。[すべて] を選択すると、重大度が割り当てられていないログエントリも表示されます。

  • 4 番目のメニューから期間を選択するか、5 番目のメニューから [現在の位置に移動] を選択します。

メニューの選択を変更すると、条件に一致するログエントリが表示されます。

メニューに関する注意事項:

  • メニューに表示されるのは、プロジェクト内に存在するリソースタイプ、インスタンス、ログ名だけです。新しいリソースタイプやインスタンスを追加した後や新しいログへの書き込み後、メニューが更新されるまで、少し時間がかかる場合があります。

  • 基本フィルタ インターフェースでは、1 つのリソースタイプのログエントリしか表示されません。高度なフィルタ インターフェースでは、複数のリソースタイプを同時に表示できます。

  • 現在の保持期間より前の時間を選択した場合、ログは表示されません。詳細については、ログの保持期間をご覧ください。

ログエントリのダウンロード

数回のクリックで、ログビューアの作業メモリに格納されているすべてのログエントリを JSON 形式または CSV 形式でダウンロードできます。パフォーマンス上の理由から、ログビューアでは一度に 100 件のログエントリの読み込みが試行され、作業メモリには最大 300 件のログメモリが保持されます。これらの値は構成できません。

ログエントリをダウンロードするには、ログビューアの右上端にある [ログをダウンロード] メニューをクリックします。ダウンロード ダイアログで、[Log entry format] として [JSON] または [CSV] を選択し、[ダウンロード] をクリックします。

ダウンロードの詳細を表示

JSON または CSV 形式のログエントリをウェブページに表示するには、ダウンロードと同じ手順(ただし [新しいタブで表示] を選択)に従います。

ログビューアによる検索

基本フィルタ インターフェースでも高度なフィルタ インターフェースでも、フィルタを使用して検索範囲を絞り込むことができます。高度なフィルタ インターフェースは、基本フィルタ インターフェースで使用できる機能に加え、より強力な検索機能を備えています。

基本フィルタと高度なフィルタの違い

基本フィルタ インターフェースと高度なフィルタ インターフェースの構文は異なります。基本フィルタ インターフェースは、高度なフィルタ インターフェースでは無効な想定(たとえば、すべての検索で大文字と小文字が区別されない)のもとで作成されています。

この後のセクションでは、2 つのインターフェースの構文の主な相違点を取り上げていきます。

キーワード "text:"

ログビューアの基本フィルタによるテキスト検索では、テキストの先頭に text: というラベルが付加されます。text: ラベルは高度なフィルタでは使用しないでください。

次の表は、同じ意味を持つテキスト検索を示しています。

ログビューアの基本フィルタ 同じ意味を持つ高度なログフィルタ
text:"one two" "one two"
text:three three
text:n=5 "n=5" (引用符が必要)

高度なフィルタで誤って text: を使用すると、text という存在しないフィールドで一致を検索することになります。

フィールド名

基本フィルタ インターフェースには、App Engine リクエストログを含む特定のログのフィールド名が組み込まれています。このフィールド名は高度なフィルタには存在しません。

次の表は、App Engine リクエストログに対して同じ意味を持つフィールド検索を示しています。

基本フィルタ 高度なフィルタ
querystring:var=3 protoPayload.resource:"var=3"
status:400..405 protoPayload.status >= 400 AND protoPayload.status <= 405

高度なフィルタで querystring:var=3 を使用すると、querystring という存在しないフィールドを検索することになります。当然、ログビューアでは一致するログエントリを見つけられません。

部分文字列の一致

基本フィルタ インターフェースでは、すべての検索が部分一致で、大文字と小文字が区別されません。つまり、text:abcsomefieldname:abc の検索では、abcxyabcyxABc を含むログエントリが一致します。高度なログフィルタの場合、同じ結果を表示するには "has" 検索演算子(:)を使用する必要があります。

完全一致の検索のためには、等価演算子(=)を使用します。比較 field=abc では、大文字小文字を含めて fieldabc が正確に含まれている必要があります。この検索条件は、基本フィルタ インターフェースで指定できません。

AND と OR

基本フィルタ インターフェースでは、フィールド名が同じ(または text:)である 2 つの比較は暗黙に OR で結合されます。これに対して、ラベルが異なる比較は AND で結合されます。高度なログフィルタでは、OR を明示的に指定しない限り、すべての比較が AND で結合されます。かっこを使用して比較をグループ化することもできます。次の表は、2 つのフィルタ インターフェースによる同等の検索を示しています。

基本フィルタでの検索 高度なフィルタでの検索
text:abc querystring:def text:xyz protoPayload.resource:"def" AND ("abc" OR "xyz")

検索のパフォーマンス

検索のパフォーマンスを改善するヒントをいくつか紹介します。

  • インデックス付きフィールドの特定の値を検索する。たとえば、ログエントリの名前、リソースタイプ、リソースラベルなどを検索します。基本フィルタ インターフェースでは、これらの項目をメニューから選択できます。高度なフィルタ インターフェースでは、次のような条件を指定します。

    resource.type = "gce_instance"
    logName = "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity"
    resource.labels.module_id="default"
    resource.labels.instance_id="1234567890"
    
  • 部分一致ではなく完全一致を選択する。特に、インデックス付きフィールドの場合、部分検索は時間がかかります。基本フィルタ インターフェースでは、すべてのテキスト検索が部分一致です。高度なフィルタ インターフェースでは、"has"(:)ではなく、等価演算子(=)を使用します。

  • 検索期間を短くする。基本フィルタ インターフェースでは、この操作はできません。高度なフィルタ インターフェースでは、期間を指定できます。

    timestamp >= "2016-11-29T23:00:00Z" AND timestamp <= "2016-11-29T23:30:00Z"
    

パフォーマンスの詳細については、ログエントリの迅速な検索をご覧ください。

トラブルシューティング

このセクションでは、ログビューアの操作または検索に関連する一般的な問題のトラブルシューティングについて説明します。

ログが表示されない場合

ログが表示されない場合には、次のことを確認してください。

  • 正しいプロジェクトがページの上部で選択されているかどうか。 選択されていない場合は、ページの上部にあるプルダウン メニューを使用してプロジェクトを選択します。表示するログが属するプロジェクトを選択する必要があります。

  • プロジェクトにアクティビティがあるかどうか。 プロジェクトが新規の場合でも、作成されたという事実を記録したアクティビティ ログまたは監査ログがあります。クイックスタートを使用すると、より多くのログを取得できます。

  • 期間が短すぎるかどうか。 検索フィルタ ボックスの下にあるプルダウン メニューを使用すると、他の期間の選択やカスタム期間の定義が可能です。特定の日時のログをフィルタリングするには、[時間を選択] を選択します。現在のログエントリを表示するには、[現在の位置に移動] メニューを使用します。

検索できない場合

基本フィルタ インターフェースで検索できない理由がわからない場合は、一時的に高度なフィルタ インターフェースに切り替えます。

  1. 検索フィルタ ボックスの最後にある ▾ メニューで、[高度なフィルタに変換] を選択します。
  2. 高度なフィルタに目的のフィルタがあるか確認します。
  3. ブラウザの「戻る」ボタンを使用して、基本フィルタ インターフェースに戻ります。

必要なログエントリがすべて表示されない理由は他にもいくつかあります。

  • Stackdriver Logging の保持期間を超過したログエントリは表示されません。有効なログの保持期間については、ログの保持期間をご覧ください。

  • 負荷が高くなっている場合、Stackdriver Logging へのログの送信やログの受信と表示に遅延が生じることがあります。

  • 未来のタイムスタンプを持つログエントリは、現在の時刻がタイムスタンプに「追いつく」までログビューアに表示されません。これは異常な状況です。おそらく、ログを送信しているアプリケーションの時間のずれが原因です。

次のステップ

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

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

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