ログの表示

このガイドでは、ログビューアでログの検索とログエントリの表示を行う方法を説明します。ログエントリをエクスポートする方法については、ログのエクスポートをご覧ください。Stackdriver Logging API を使用してログエントリを読み取る方法については、entries.list をご覧ください。Google Cloud SDK を使用してログエントリを読み取る方法については、ログエントリを読み取るをご覧ください。

始めに

  1. GCP Console で [Stackdriver] > [ロギング] ページの順に移動します。

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

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

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

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

Stackdriver アカウントと Stackdriver Logging

長いログ保存期間や Amazon Web Services(AWS)を使用する機能などのプレミアム階層機能が必要でない限り、Stackdriver Logging を使用するために Stackdriver アカウントは必要ありません。

Monitoring と Stackdriver アカウントを使用する場合、Stackdriver Logging はモニタリング対象プロジェクトのログをアカウント プロジェクトに統合しません。表示するログが属するプロジェクトを選択する必要があります。Amazon Web Services アカウントで生成されたログの場合、AWS ログを表示するには AWS コネクタ プロジェクトを選択する必要があります。

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

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

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

インターフェースを切り替えるには、インターフェースの検索フィルタ ボックスの右側にある ▾ メニューを使用します。次のスクリーンショットは、ログビューアのレイアウトを示しています。Compute Engine VM インスタンスの 4 つのログエントリが表示されています。展開矢印(▸)がクリックされ、2 番目のエントリが展開されています。

ログビューア

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

  1. ウィンドウタブでは、[ログ]、[指標](ログベースの指標をご覧ください)、[エクスポート](ログのエクスポートをご覧ください)、[リソースの使用量] を選択できます。
  2. 基本フィルタ インターフェースの検索フィルタ ボックスでは、ラベルまたはテキスト検索を使用してログエントリをフィルタリングできます。基本フィルタが表示されますが、端のメニュー(▾)を使用すると、高度なフィルタ インターフェースに切り替えられます。
  3. 基本セレクタ メニューでは、表示するリソース、ログ、重大度レベルを選択できます。
  4. 期間セレクタのプルダウン メニューでは、特定の日時でログをフィルタリングできます。
  5. ページの先頭にあるストリーミング セレクタでは、新しいログエントリを受信時に表示するかどうかを制御できます。
  6. ログエントリ テーブルには、現在のフィルタとカスタム フィールドに応じて使用可能なログエントリが含まれています。
  7. 各ログエントリの前にある展開矢印(▸)を使用すると、エントリの全内容を見ることができます。詳しくは、ログエントリの展開をご覧ください。
  8. [表示設定] メニュー: 右端にあり、その他の表示オプションがあります。

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

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

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

  • [更新] アイコン(最新のログに移動)を使用して、最新のログを取得し、画面をスクロールします。
  • [再生] アイコン(▶)を使用して、最新ログのストリーミングを開始します。停止するには、ログエントリを選択するか、ログ画面をスクロールします。
  • [一時停止] アイコン(▐▐)を使用して、最新ログのストリーミングを停止します。

時間までスクロール

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

期間セレクタ

デフォルトの選択は過去 1 時間です。プルダウン メニューから他の期間を選択したり、カスタム範囲を定義したりできます。特定の日時のログをフィルタリングするには、[時間を選択] を選択します。現在のログエントリを表示するには、[現在に移動] メニューを使用します。選択したら、ログをスクロールして、その時間のエントリを調べることができます。ページの先頭にある [更新] または [再生] アイコンをクリックすると、メニューの日時をリセットして、最後に受信したログエントリに移動できます。

ログをフィルタリングするタイムゾーンを選択できます。

  1. 前述のプルダウン メニューのスクリーンショットに示すように、[過去 1 時間] の下の [カスタム] を選択します。[カスタム] の右側に 2 つの新しいメニューが表示されます。
  2. 新しいメニューの 1 つで展開矢印(▾)をクリックします。カレンダーのメニューが表示されます。
  3. カレンダーのメニューの [タイムゾーン] セクションで、該当する国とタイムゾーンを選択します。
  4. ログビューアに、更新されたタイムゾーンの設定が表示されます。

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

ログエントリの展開

ログエントリ テーブルには、デフォルトで、各ログエントリの概要行が表示されます。以下は、1 つの概要行が赤色で明示されたスクリーンショットです。

ログエントリの概要行

ログビューアでは、概要行のログエントリの特定のフィールドが強調表示されます。特定のフィールドは、次の基準を満たす場合にデフォルトで表示されます。

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

概要行に他のフィールドを追加することもできます。詳細については、カスタム フィールドの追加をご覧ください。

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

[表示設定] メニュー

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

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

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

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

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

カスタム フィールドは、メインのログエントリ概要の概要行に追加できる、ログエントリ内のフィールドです。

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

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

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

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

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

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

カスタム フィールドは、ログエントリ テーブルで青色で強調表示されます。

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

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

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

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

類似したログを表示する

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

一致エントリを表示

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

ログを選択する

メニューとフィルタ ボックスを使用して、必要なログを検索します。

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

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

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

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

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

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

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

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

  • ログエントリには、Stackdriver サービス階層に応じて保存期間が設定されています。現在の保存期間より前の時間を選択した場合、ログは表示されません。詳細については、Stackdriver の料金をご覧ください。

ログビューアによる検索

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

基本フィルタ インターフェースで検索する方法の詳細については、基本ログフィルタをご覧ください。高度な検索の詳細については、高度なログフィルタをご覧ください。

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

基本フィルタ インターフェースのテキスト検索とフィールド検索の使い方に慣れたら、高度なログフィルタとの違いに注意しましょう。

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 という名前のフィールドを検索することになりますが、このフィールドは存在しないため、ログビューアでログは検索されません。

部分文字列の一致

基本フィルタ インターフェースでは、すべての検索が部分一致で、大文字と小文字が区別されません。text:abc または somefieldname: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 = "project/[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 へのログの送信やログの受信と表示に遅延が生じることがあります。

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

次のステップ

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

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