ログの表示

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

スタートガイド

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

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

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

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

ログが表示されない場合

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

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

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

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

Stackdriver アカウントと Stackdriver Logging

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

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

ログビューアのユーザー インターフェース

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

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

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

ログビューア

基本インターフェースの主な構成要素は次のとおりです。一部の要素は高度フィルタ インターフェースにも表示されます。

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

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

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

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

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

時間までスクロール

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

期間セレクタ

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

ログエントリの展開

ログビューアには、デフォルトで、各ログエントリの概要行が表示されます。ログエントリ全体を表示するには、そのログエントリの構造化ビューで展開矢印(▸)をクリックします。エントリ フィールドの詳細については、LogEntry をご覧ください。

次のスクリーンショットは、ログエントリの構造化ビューを示しています。ログエントリのペイロードは textPayload フィールドに格納されます。

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

以下の場合は、ログビューアでログエントリのカスタム概要行が作成されます。

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

類似したログを表示する

展開されたログエントリ ビューの個別のフィールドの値をクリックしてから、同じ値のすべてのログエントリを表示または非表示にすることができます。この操作を行うと、ログビューアがログフィルタ インターフェースに切り替わります。検索条件を変更するには、フィルタを編集して [フィルタを送信] をクリックします。詳細については、高度なフィルタ インターフェースをご覧ください。

ログを選択する

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

  • 必要なログのリソースタイプとインスタンスを選択します。リソースタイプのすべてのインスタンスを表示することも、特定のインスタンスを選択することもできます。上のスクリーンショットでは、[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. 検索ボックスの最後にある &blacktriangledown; メニューで、[高度なフィルタに変換] を選択します。
  2. 高度なフィルタに目的のフィルタがあるか確認します。
  3. ブラウザの [戻る] ボタンを使用して、基本インターフェースに戻ります。

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

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

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

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

次のステップ

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