ログの表示(従来版)

このガイドでは、Cloud Logging のログビューア(従来版)でログを検索し、ログエントリを表示する方法を説明します。

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

始める前に

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

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

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

BindPlane でオンプレミスとハイブリッド クラウドのログを取り込む場合、これらのログはリソースタイプ generic_node にあります。

始めに

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

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

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

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

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

ログビューアのクエリ インターフェース

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

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

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

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

ログビューア

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

  1. ウィンドウタブでは、[ログ](ログビューア ページ)をそのまま表示することも、他の Logging 機能、具体的には、[指標](ログベースの指標を参照)、[エクスポート](ログビューアによるエクスポートを参照)、[ログの取り込み](ログの除外を参照)を選択することもできます。
  2. 基本クエリ インターフェースの検索クエリボックスでは、ラベルまたはテキスト検索でログエントリをクエリできます。基本クエリが表示されていますが、右端のプルダウン矢印(▾)を使用すると、高度なクエリ インターフェースに切り替えられます。自分のクエリへのリンクも表示できます。ログクエリは、ログエントリの特定のセットを選択できるようになっているため、ユーザー インターフェースでは「フィルタ」のラベルが付いています。
  3. 基本セレクタ メニューでは、表示するリソース、ログ、重大度レベルを選択できます。

    • リソース: 現在のプロジェクトで使用できるリソース。
    • ログ: プロジェクト内の現在のリソースで使用できるログの種類。
    • ログの重大度: ログの重大度レベル。
  4. 期間セレクタのプルダウン メニューでは、特定の日時でログをクエリできます。

  5. ページの先頭にあるストリーミング セレクタでは、新しいログエントリを受信時に表示するかどうかを制御できます。

  6. ログエントリ テーブルには、現在のクエリとカスタム フィールドに応じて利用可能なログエントリが含まれています。

  7. 各ログエントリの前にある展開矢印(▸)を使用すると、エントリの全内容を見ることができます。詳細については、ログエントリの展開をご覧ください。

  8. [表示設定] メニュー: 右端にあり、その他の表示オプションがあります。

  9. [ログをダウンロード] メニュー: 右端にあり、一連のログエントリをダウンロードできます。詳細については、ログエントリのダウンロードをご覧ください。

  10. 各ログエントリに表示されるその他アイコン(⋮)を使用すると、ログエントリを固定する、リソース コンテキスト内でログエントリを表示する、ログエントリの URL をクリップボードにコピーするといった操作を行えます。

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

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

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

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

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

時間までスクロール

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

期間セレクタ

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

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

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

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

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

タイムゾーンを変更する

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

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

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

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

ログエントリの展開

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

ログエントリの概要行

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

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

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

1 つのログエントリの詳細を表示するには、概要行の前にある展開矢印(▸)をクリックします。現在のクエリで使用できるすべてのログエントリの構造化ビューの詳細を表示するには、右端の [表示オプション] メニューをクリックし、[すべてを展開] を選択します。

[表示設定] メニュー

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ログエントリを固定する

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

固定されたログエントリ

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

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

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

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

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

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

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

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

類似したログを表示する

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

一致エントリを表示

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

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

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

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

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

protoPayload.latency を表示

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

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

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

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

特定の App Engine リクエストログでは、[トレースの詳細表示] オプションが有効になっています。有効になっている場合は、このオプションをクリックして Cloud 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"
    

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

保存済みの検索条件

基本ログフィルタや高度なログフィルタの検索条件を保存済みの検索条件ライブラリに保存し、名前と説明を付けることができます。基本フィルタは、保存済みの検索条件ライブラリに保存すると高度なフィルタに変換されます。ライブラリで、保存済みの検索条件の名前指定、管理、共有を行うことができます。保存済みの検索条件は、Google Cloud プロジェクトごとに、1 ユーザーにつき 100 件までに制限されています。

保存済みの検索条件を作成するには、次の手順を行います。

  1. 高度なログフィルタを作成して、保存するログをフィルタします。

  2. [検索を保存] をクリックします。

    [検索を保存] ボタン

  3. 作成したフィルタに名前を付け、説明を入力して [ライブラリに保存] をクリックします。

    [フィルタのプレビュー] パネルに、保存した検索のフィルタ条件が表示されます。

保存済みの検索条件を表示する

保存済みの検索条件を表示するには、[ライブラリを表示] をクリックします。

保存済みの検索条件のライブラリ

保存済みの検索条件を編集する

保存したフィルタの適用、フィルタの削除、フィルタの表記のプレビューを行うには、次の手順を行います。

  1. 保存済みの検索条件を表示するには、[ライブラリを表示] をクリックします。

  2. 保存した検索条件をプレビューまたは削除するには、[その他] をクリックします。

    保存済みの検索条件を編集する

    保存済みの検索条件のフィルタ条件は、作成後は変更できません。保存済みの検索条件のフィルタ条件を変更する場合は、保存済みの検索条件を削除してから、必要な条件を指定して新しい保存済みの検索条件を作成します。

保存済みの検索条件を共有する

保存済みの検索条件は、プロジェクトで Cloud Identity and Access Management 権限を持つユーザーと共有できます。

保存済みの検索条件を共有するには、次の手順を行います。

  1. 保存済みの検索条件を表示するには、[ライブラリを表示] をクリックします。

  2. [その他] をクリックして、[プレビュー] をクリックします。

  3. [フィルタへのリンクをコピー] をクリックします。

    保存済みの検索条件を共有する

トラブルシューティング

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

Google Cloud プロジェクトの選択

ログビューアなど、Google Cloud Console の任意の場所から Google Cloud プロジェクトを選択するには、ページ上部のプロジェクト セレクタを使用します。

GCP Console プロジェクト セレクタ

Google Cloud プロジェクト ID

ログビューアなど、Google Cloud Console の任意の場所から Google Cloud プロジェクトの ID を取得するには、ページの上部にあるプロジェクトのリストを展開し、[ID] 列を確認します。

GCP Console プロジェクト ID の情報

ログが表示されない場合

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

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

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

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

  • 期間が間違っているかどうか。タイムスタンプを含むクエリを作成する場合は、検索クエリボックスの下の期間セレクタから [制限なし] を選択する必要があります。

検索できない場合

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

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

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

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

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

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

次のステップ